有時在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,結果是在腳本里面生效。該端口是不生效的。重新打開一個才生效。所以如果這是寫自動腳本的時候系統變量需要注意的。