1
$ foobar
sh: foobar: not found
$ foobar 2>/dev/null
$ 

我正在尝试仅重定向 foobar 的 stderr(如果 foobar 存在并且可以运行),但 shell 的错误消息也被重定向。这发生在 bash、ksh 和 sh 中,但不在 csh 中。我不熟悉 bourne shell 源代码,但我猜这是因为 shell 首先分叉,然后重定向,然后尝试 exec(),当 exec() 失败时,它会向已经重定向的 stderr 发送错误消息。

4

1 回答 1

0

如果 foobar 是一些可执行文件,请尝试:-

$ ./foobar
sh: foobar: not found
$ ./foobar 2>/dev/null #alternatively you can use full path.
$ 
于 2012-10-08T16:21:55.427 回答