[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: proper escaping sequence in crontab?
> I want my daily/weekly cron files to spool to disk as email is disabled.
> So I tried the following command but it's getting chopped off right
> after the + (plus) sign. Why is this happening and how can I fix it? If
> I put any character between the + and % it works but that character
> shows up in the filename which is not what I want.
>
> /bin/sh /etc/daily 2>&1 > /root/daily.`date "+%y%m%d"`
>
> which cron says becomes the following when executed:
> ( /bin/sh /etc/daily 2>&1 > /root/daily.`date "+)
It appears you did not read the crontab(5) manpage:
The ``sixth'' field (the rest of the line) specifies the
command to be run. The entire command portion of the
line, up to a newline or % character, will be executed by
/bin/sh or by the shell specified in the SHELL variable of
the cronfile. Percent-signs (%) in the command, unless
escaped with backslash (\), will be changed into newline
characters, and all data after the first % will be sent to
the command as standard input.
That said, there is a bug which prevents \% from being properly
un-escaped later on when the command is executed. I have just fixed
this bug in cron, and things now work better.