Lin*_*Out 2 linux bash cron ubuntu debian
我有这个 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.
我想保持对所有此类作业的向后兼容性,以便我可以逐一编辑和测试它们,并且不想破坏其命令中具有 ~ 的其他作业。我能做些什么?
如果您设置HOME=/home/user/Documentsthencd ~/Documents相当于cd /home/user/Documents/Documents,这可能会失败。
我应该指出,参考文档 ( man 5 crontab) 中没有任何地方说您“可以使用cron HOME变量来更改 cron 工作目录”。
结论?不要改变$HOME
| 归档时间: |
|
| 查看次数: |
181 次 |
| 最近记录: |