为什么bsd的crontab不能加>& /dev/null
本文可自由转载,但请遵循“署名-非商业用途-保持一致”的创作共用协议。 永久链接:JoeCen's 小猫窝-----------------------------
为什么bsd的crontab不能加">& /dev/null".
加了之后没有运行。
??
http://www.cs.uu.nl/wais/html/na-dir/unix-faq/shell/csh-whynot.html
似乎在命令行中使用">& /dev/null"还是">&-"都没有问题,但是在crontab中使用就会出现问题了:
1、在crontab中使用
*/1 * * * * (sh test1.sh >& /dev/null)
会收到邮件,说:Syntax error: Bad fd number
2、在crontab中使用
*/1 * * * * (sh test1.sh > & /dev/null)
会收到邮件,说:Syntax error: "&" unexpected
总结:
要关闭标准输出和错误输出的标准写法是:
cmd > /dev/null 2>&1
但是在csh下面,需要使用"sh"命令的"-c"参数来使用该写法:
/bin/sh -c 'test1.sh > /dev/null 2>&1'
而在crontab中直接调用就可以了:
*/1 * * * * (test1.sh > /dev/null 2>&1)
估计是在crontab中已经调用了sh命令,所以无需再用sh -c。
February 5th, 2009 at 11:39 am Quote
嗯 是的 脚本可以直接使用的 BSD正同的crontab与linux下面的还是有差别的