我有一个使用该ip r
命令的 bash 脚本。当我在 bash 中运行该脚本时,它可以工作,但当 cron 运行它时,它却不工作。
这是我的脚本中的一行:
ping -q -w 1 -c 1 `ip r | grep -m 1 default | cut -d ' ' -f 3` >/dev/null || exit
为了测试ip r
命令是否存在问题,我notify-send "TEST $(ip r)"
在该行前面添加了。当我在 bash 中执行脚本时,它会发送带有 TEST 的通知和输出,ip r
但当使用 cron 运行时,通知仅包含TEST
。
答案1
$PATH
使用 cron 运行时未设置变量。因此,我在 bash 中运行,echo $PATH
然后$PATH
在 crontab 命令中将变量设置为该输出。
为此我添加了
eval "export PATH=/usr/local/bin:/usr/bin:/usr/local/sbin :/usr/sbin:/home/alex/.local/bin"
其中,crontab -e
之后的所有内容都是在 bash 中运行时PATH=
命令的输出。echo $PATH