A. shell脚本运行不了
在本脚本内,你的执行是成功的,echo也可以正常输出,但是脚本退出以后,export就失效了,可以查一下相关文档,./***.sh会启动一个子进程,脚本退出后,子进程的内容是不能影响父进程的,你可以使用source **.sh来完成这个功能,不过头部要改一下
#! /bin/bash
B. crontab中启动的shell脚本不能正常运行,但是使用手动执行没有问题
1、这种情况多数为环境变量加载问题
2、例如你用ls命令,其实依赖PATH环境变量
3、可以改为全路径,比如/bin/ls
4、或者将环境变量加载到脚本
#!/bin/sh
. ~/.bash_profile
ls -lrt $*
C. 手机shell脚本加密后不能运行
看一下脚本内容是否正确,运行的方式是否正确。
可以采取两种方式进行运行:
一、 $ sh test 一般不采用这种调用方式,尤其不采用“sh
二、直接运行可执行的shell脚本之前,首先应使用下列chmod命令,把shell脚本文件设置为可执行的文件。 chmod 755 test(除文件属主可写之外,每个用户均具有读和可执行的访问权限) chmod +rx test(同上) chmod u+rx test(只有文件属主具有读和执行的访问权限) 按照上述要求设置shell脚本文件的访问权限后,可采用下列方式,直接运行shell脚本了。
1、test(如果命令检索路径包含当前目录)
2、./test(如果命令减缩路径不包含当前目录) *说明: sh test 方式调用一个shell叫蹦可能会禁止某些shell特定的扩展功能,因而可能引起脚本无法正确执行。
D. shell脚本ansible执行不成功
无法获取环境变量。
由于使用ansible脚本批量化部署环境,网络环境走的代理,但是有些模块总是无法执行成功,最后经过排查是因为ansible远程连接通过ssh,无法获取环境变量,我的环境变量是在/etc/profile文件里。可以通过shell命令先导入环境变量。
E. Windows下Shell脚本运行错误展示错误信息并停止向下执行
shell脚本运行完毕之后会直接关闭窗口,不便于开发者查看运行结果,这点可以通过 sleep 来实现暂停
新建脚本 demoshell
在命令窗口执行 demoshell.sh xxxxx ,会启动 shell 窗口 ,打印 params1= xxxxx 之后就会关闭窗口
想要不关闭窗口可以在脚本的最后添加 sleep 来实现。
例如
再次执行 demoshell.sh xxxxx ,执行完毕之后,窗口不会直接关闭,可以查看运行结果
shell脚本还有一个不好的地方就是中间的一个命令运行失败之后还会继续向下执行,这是一个很危险的行为,并且向下执行的时候会冲掉失败信息,无法根据错误提示来修改脚本。
接下来执行一个不存在的任务,让shell脚本运行失败
执行失败之后由于 sleep 100 ,可以看到错误提示,如果没有 sleep 100 存在,执行失败之后也是立马关闭了窗口,看不到错误信息;而命令执行成功之后需要关闭窗口的,那能不能想办法做到两者兼顾呢?
答案是肯定的,原理就是判断命令执行状态,只有在命令执行失败的时候,触发sleep行为,阻塞命令向下运行
去掉 sleep 100 ,运行脚本,捕获到失败信息,显示错误信息,并停止向下执行
注释掉 ./gradlew :app:emptyTask -x lint ;
再次运行脚本,运行成功,直接就关闭了窗口
F. Ubuntu下写了一个shell脚本文件保存在music下,为啥不能执行
你还要去好好去玩一下Linux(不要用图形系统),你问的这些问题,真不好解释
1,chmod +x test.sh:将test.sh变成可执行权限。
2,test.sh 第一行有"#!/bin/sh” 告诉解释器在什么位置。
3,第一步test.sh变成可执行了,./test.sh(运行当前目录下一个可执行文件,这是一个shell脚本,需要解释器,如果有"#!/bin/sh”通过sh解释,如果没有会报错没这个命令)。
4,./test.sh(第三步我以解释什么意思);运行test.sh(将同过path路径去找这个命令,显然这个tesh.sh这个文件不在你path路径下,你怎么能运行呢)。
5,sh test.sh(sh在/bin目录下也就是已经假如path路径,用sh命令解释你这个脚本)
G. Ubuntu中shell脚本没办法运行是什么问题
把报错截图出来看下,具体时什么报错,
没办法运行,应该是本身的文件没有执行权限,用chmod +x 文件名操作一下。再去运行你的shell脚本
H. shell 脚本为何无法运行
第一,脚本权限要为可执行 #chmod +x test.sh
第二,脚本所在的目录在环境变量 PATH 中,或者直接执行 #./test.sh
关于shell脚本这块的知识,请查阅书籍《Linux就该这么学》
I. php执行shell脚本,为什么执行不了
直接执行shell脚本没有权限问题,因为一般你也是root登陆的。但是使用php执行就会存在。这里你要先确定使用shell脚本操作的文件或者文件夹是否开启777权限
J. 命令在控制台中能正常执行但在shell脚本中却无法执行
没遇到过,一般我会先检查下权限,比如chmod 查看你的权限。
查看脚本文件是dos格式还是unix格式
你是在用虚拟机吗?你的文件安装目录,检查 /etc/fstab 文件分区文件
另外《Linux就该这么学》中有个Linux命令大全可以查询命令