日期的cron语法

时间:2009-12-31 06:28:48

标签: unix date cron

以下语句在命令提示符下工作。但是在cron中不起作用。

myvar=`date +'%d%m'`; echo $myvar >> append.txt

cron日志显示只运行了一部分日期语句。 我如何在cron中使用它?

3 个答案:

答案 0 :(得分:2)

使用反斜杠(\%)转义百分号。

答案 1 :(得分:1)

我的一般经验法则是“不要在crontab文件中编写脚本”。这意味着我不会在crontab文件中放置除简单脚本名称(带绝对路径)和可能的一些控制参数之外的任何内容。特别是,我没有在crontab文件中放置I / O重定向或变量评估;这样的东西放在由cron作业运行的(shell)脚本中。

这可以避免麻烦 - 并且适用于古代和现代的各种cron变体。

答案 2 :(得分:1)

来自man 5 crontab

  

第六场(其余的   line)指定要运行的命令。   该行的整个命令部分,直到换行符或%字符,将是   由/ bin / sh或by执行        在cronfile的SHELL变量中指定的shell。   除非使用反斜杠()进行转义,否则命令中的百分号(%)将更改为   换行符,等等        第一个%之后的数据将作为标准输入发送到命令。

您的%被更改为换行符,并且命令的后半部分将作为stdin提供给命令。正如Ignacio所说,你需要使用%

来逃避\ s