
我正在運行一個簡單的 shell 腳本,該腳本在 的登入 shell 中運行良好cron
,但它不運行。由於某種原因,在 shell 中運行時/usr/local/bin
不在使用者路徑上運行。cron
確定的環境在哪裡cron
?
答案1
通常,從為 建立的非登入環境/bin/sh
,這是預設用於執行該命令的環境。
在大多數版本中,您可以在 crontab 中設定其他環境變量,如下:
PATH=/usr/local/bin:/usr/bin:/bin
@reboot whatever
檢查crontab(5)
詳情;man 5 crontab
答案2
檢查您的腳本使用的是哪個 shell。
crontab 的 shell 和變數在 /etc/crontab 中指定
x@x:~$ cat /etc/crontab
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
sh 使用的設定檔位於使用者 home 中。
x@x:~$ ls ~/.profile
/home/x/.profile
您可以在此文件末尾新增 PATH 變數(確保您已新增至正確使用者的設定檔中)
PATH="$PATH:/usr/local/bin"
或者您可以在自己的腳本中新增同一行。