Linux 为什么百分比符号(%)在crontab中不起作用?
我正在使用cron将文件写入bash脚本运行的日志中。对cron的调用如下所示:Linux 为什么百分比符号(%)在crontab中不起作用?,linux,bash,date,cron,crontab,Linux,Bash,Date,Cron,Crontab,我正在使用cron将文件写入bash脚本运行的日志中。对cron的调用如下所示: */25 * * * * bash script.sh > "/var/log/$(date +%Y-%m-%d_%H:%M).log" 但当我检查crontab时,它会记录为 */25 * * * * bash script.sh > "/var/log/$(date +).log" 而且它从不写入日志文件。是否需要更改某些内容才能让cron写入日期?这是一个转义变量的问题: * * * * *
*/25 * * * * bash script.sh > "/var/log/$(date +%Y-%m-%d_%H:%M).log"
但当我检查crontab时,它会记录为
*/25 * * * * bash script.sh > "/var/log/$(date +).log"
而且它从不写入日志文件。是否需要更改某些内容才能让cron写入日期?这是一个转义变量的问题:
* * * * * /usr/bin/touch /tmp/$(date +\%Y:\%m).log
# ^ ^
对我工作
从man 5 crontab
:
命令中的百分号(%),除非用反斜杠(\)转义,否则将更改为换行字符,并且第一个%之后的所有数据将作为标准输入发送到命令
所以
应该有用
注意:我使用了
/bin/bash
而不是bash
这是一个转义变量的问题:
* * * * * /usr/bin/touch /tmp/$(date +\%Y:\%m).log
# ^ ^
对我工作
从man 5 crontab
:
命令中的百分号(%),除非用反斜杠(\)转义,否则将更改为换行字符,并且第一个%之后的所有数据将作为标准输入发送到命令
所以
应该有用
注意我使用了/bin/bash
而不是bash