Ela*_*amb 3 linux shell bash cron
我有一个myscript.sh调用命令的 shell 脚本,比如说mycmd. 例如./myscript.sh,当我从终端运行该脚本时,一切正常。
myscript.sh
mycmd
./myscript.sh
但是当我将该脚本添加到 crontab 时,输出mycmd为空。当我再次调用/usr/local/bin/mycmd内部时myscript.sh一切正常。
/usr/local/bin/mycmd
那么为什么我必须使用可执行文件的绝对路径?是不是因为它不在$PATH“cron-bash”中?
$PATH
Dop*_*oti 5
您完全正确 - 的环境cron可能PATH不包括/usr/local/bin/. 您可以通过在脚本中将该目录附加到以下内容来解决此问题PATH:
cron
PATH
/usr/local/bin/
PATH="$PATH:/usr/local/bin/"
最好的做法,不过,确实是使用显式路径,所有外部的二进制文件,一个脚本,以防万一要求(例如)恶意设计的程序通称为cp被投进PATH以前在什么地方/bin。
cp
/bin
归档时间:
9 年,2 月 前
查看次数:
2712 次
最近记录: