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

随机日志

  • 使用了一个比较稳定的空间
  • 通过adsl拨号上网并作网关
  • 你还在用mrtg吗?--使用cacti监测系统性能
  • 好用的savelog命令
  • 使用Perl DBI接口连接MySQL
  • One Response to “为什么bsd的crontab不能加>& /dev/null”

    1. kevin Says:

      嗯 是的 脚本可以直接使用的 BSD正同的crontab与linux下面的还是有差别的

    Leave a Reply