我对以下内容感到好奇:
我有一个bash脚本,通过cronjob在一个月内执行一次。以下行给出错误"未知命令"当通过cronjob时:
echo $P | chpasswd
当我直接执行bash脚本时,它正常工作。
有想法的人吗?
答案 0 :(得分:1)
将评论转换为答案。
.hasOwnProperty()
工作提供的PATH
是什么? cron
存放在哪里?由于存储chpasswd
的目录未在chpasswd
提供的路径中列出,因此无法找到它。 cron
的环境非常有限;任何与众不同的事情都意味着需要非常小心。
在cron
作业运行的脚本中更完整地设置PATH,或指定不在cron
或/bin
中的命令的绝对路径名。
顺便提一下,如何为/usr/bin
设置P
来回应它?它不是每个月设定相同的值吗?那是明智的吗?
Stack Overflow还有很多关于从echo
作业运行命令的困难的其他问题。除其他外,请参阅Bash script not running in cron
correctly和Perl script works but not via cron
以及Is there a special restriction on commands executed by cron
?,仅列举三个。