“命令未找到”消息也被重定向

时间:2012-10-08 16:19:33

标签: bash shell

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

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

1 个答案:

答案 0 :(得分:0)

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

$ ./foobar
sh: foobar: not found
$ ./foobar 2>/dev/null #alternatively you can use full path.
$