有时在shell脚本里使用的命令不能执行,是因为命令在脚本里面示加入命令的绝对路径引起的,即环境变量中找不于该命令的执行位置。
此时,可以考虑在脚本的头部加入该脚本所在服务器系统的环境变量,具体如下:
首先,echo $PATH即可显示如下信息: (即当前系统环境变量)
/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/jdk/bin:/usr/local/mysql/bin
把上面段信息复制到脚本头部,如下:
如,vi test.sh
#!/bin/bash export PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/local/jdk/bin:/usr/local/mysql/bin 或 PATH=/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/locajdk/bin:/usr/local/mysql/bin export PATH
注意,假设我现在新安装一个jdk,那么在脚本里面使用了source /etc/profile,结果是在脚本里面生效。该端口是不生效的。重新打开一个才生效。所以如果这是写自动脚本的时候系统变量需要注意的。