小编Lin*_*Out的帖子

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

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

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

PATH="/usr/local/bin:/usr/bin:/bin"
HOME=/home/user/Documents
Run Code Online (Sandbox Code Playgroud)

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

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

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

linux bash cron ubuntu debian

2
推荐指数
1
解决办法
181
查看次数

标签 统计

bash ×1

cron ×1

debian ×1

linux ×1

ubuntu ×1