bash:crontab中的$ _为空

时间:2012-07-30 12:27:03

标签: linux bash shell cron crontab

cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php

因此,当我从控制台运行此代码时,我得到了一个正确的值$?和$ _

$? - 退出状态 $ _ - 给出上一个命令的最后一个参数。在shell启动时,它给出了正在执行的shell脚本的绝对文件名。

但是当我把这段代码放到cronjob时:

crontab -e
*/1 * * * * cd some_dir && php some_crone.php || echo "$? $_" | xargs ./some_handler.php

我得到一个空的$ _。 请帮忙。我无法理解是什么问题?

1 个答案:

答案 0 :(得分:2)

将crontab的默认shell从/ bin / sh更改为/ bin / bash,方法是在crontab中添加以下行。

SHELL=/bin/bash