在cron中转义双引号和百分号(%)

以下命令从提示符起作用,但不能从crontab起作用。

grep abc /var/log/messages | grep "`date '+%B %d'`" | mail -s"abc log of `hostname`" shantanu.oak+`hostname`@gmail.com 

我需要将其添加到每日cron。

你必须逃避%迹象。 它们在crontabs中有特殊的含义:

 man (5) crontab: 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. 

这不会直接回答你的问题,但我build议你在/ usr / local / bin(或〜/ bin或任何适当的)中创build一个脚本文件并从cron中调用它。 testing和编辑更容易。