![从 Bash 脚本中获取 crontab 文本模板](https://linux22.com/image/1558193/%E4%BB%8E%20Bash%20%E8%84%9A%E6%9C%AC%E4%B8%AD%E8%8E%B7%E5%8F%96%20crontab%20%E6%96%87%E6%9C%AC%E6%A8%A1%E6%9D%BF.png)
crontab -e
最初选择一个文本模板,显然是从这个文件中https://anonscm.debian.org/cgit/pkg-cron/pkg-cron.git/tree/crontab.c。我想以编程方式获取该文本块,这样我就可以在模板末尾附加带有 cron 作业的行,这样它看起来就像一个手动编辑的 cron 文件。
crontab -e > somefile
不起作用,因为它卡在了交互式 shell 上。
crontab -l > somefile
也不起作用,因为创建用户帐户时没有 crontab 文件。
我可以尝试使用sed
文本模板,但它在运行系统中的位置在哪里?此外,它是否存在于托管提供商部署的图像(Ubuntu)中,还是我需要先将源存储库添加到 apt 列表中?
也许更简单的方法是export VISUAL=nano; crontab -e
发送 Ctrl+o、Enter、Ctrl+X 来创建一个新的 crontab 文件,而无需用户交互?但是,如何将按键发送到 bash 脚本中的交互式 shell?
答案1
由于模板嵌入在crontab
程序本身中,因此它不需要存在于任何其他文件中。
要在没有 crontab 的系统上提取它,请尝试暂时将您的编辑器设置为touch
。
VISUAL=touch crontab -e
crontab -l >saved
您也可以使用它来提取它strings
,或者只是将它作为此处的文档嵌入到您自己的脚本中。