1.问题
直接crontab -e
写了一行命令:* * * * * echo 'good' &>> ~/test.log
然后发现 单词good并没有每分钟写入一次到test.log
一. bash中执行了命令:
echo 'good' &>> ~/test.log
cat test.log
命令行输出:
good
二. sh中执行命令:
echo 'good' &>> ~/test.log
命令行输出:
good
[1] + Done echo "good"
cat test.log
命令行输出:为空。
说明是cron默认的shell是sh, sh和bash中环境变量不同导致的。
2. 解决方式
直接crontab -e
写入:SHELL=/bin/bash 即可。
参照:
How to use cron in Linux