为什么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。

随机日志

  • 网络是拉近陌生人和疏远朋友
  • 东瀛见闻录1-关于phiten
  • 使用Cacti监测系统与网络性能_3
  • Cacti
  • 从日本回来了
  • Leave a Reply