在 crontab 中使用 HOME 变量会导致作业中断

在 crontab 中使用 HOME 变量会导致作业中断

我有这个 crontab 文件,其中有很多(100+)个作业,它们在同一目录中执行一些命令,假设~/Documents/.cd ~/Documents/ && <command>我可以使用 cronHOME变量来更改 cron 工作目录,而不是针对每个作业,如中所述人 crontab 5(我最近才发现这一点)。

但是,如果我在 crontab 中设置它:

PATH="/usr/local/bin:/usr/bin:/bin"
HOME=/home/user/Documents

每一份工作突然开始cd ~/Documents/就不再工作了。如果路径被引用并且有/没有最后一个反斜杠,则相同。

经过大量的反复试验后,我可以说这是~行不通的(我猜它不会扩展),因为如果我输入文档的绝对路径,它会很好地工作。我已经尝试过添加SHELL=/bin/bash.

我想保持对所有此类作业的向后兼容性,以便我可以逐一编辑和测试它们,并且不想破坏其命令中具有 ~ 的其他作业。我能做些什么?

答案1

如果您设置HOME=/home/user/Documentsthencd ~/Documents相当于cd /home/user/Documents/Documents,这可能会失败。

我应该指出,参考文档中没有任何地方(man 5 crontab)它是否说你“可以使用该cron HOME变量来更改 cron 工作目录”。

结论?不要改变$HOME

相关内容