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
我得到了一个空的$_。 请帮忙。我不明白什么问题?
最佳答案
通过将以下行添加到 crontab,将 crontab 的默认 shell 从/bin/sh 更改为/bin/bash。
SHELL=/bin/bash
关于linux - bash : $_ in cronjob is empty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11721565/