CRON 2>&1 >/dev/null 与 >/dev/null 2>&1

CRON 2>&1 >/dev/null 与 >/dev/null 2>&1

我刚刚创建了一个每分钟运行一次的小 shell 脚本。

发生的事情是它开始淹没我的mail

$ crontab -l
* * * * * /home/user/bin/test 2>&1 >/dev/null

我将重定向更改为>/dev/null 2>&1,然后它就停止了。

我认为2>&1 >/dev/null>/dev/null 2>&1至少在 shell 中是相等的......现在我犹豫了,它们(相等)吗?这只是 CRON 以这种方式编程的?

答案1

这两个命令不一样。

1>stdout filename必须位于command和之间2>&1


$ command  1>  stdoutput_filename  2>&1 

2>=> 重定向 stderr,&1=> 意味着stdoutput_filename.

$ command 2>&1 > /dev/null => &1 does not mean /dev/null

例子

$ ls issue issue.net nofile 2>&1 > /tmp/testfile
ls: cannot access nofile: No such file or directory
$ cat /tmp/testfile
issue
issue.net
$ ls issue issue.net nofile 1> /tmp/testfile 2>&1
$ cat /tmp/testfile
ls: cannot access nofile: No such file or directory
issue
issue.net

相关内容