$ foobar
sh: foobar: not found
$ foobar 2>/dev/null
$
我正在尝试重定向foobar的stderr(如果foobar存在且可以运行),但shell的错误消息也被重定向。这发生在bash,ksh和sh中,但不是在csh中。我不熟悉bourne shell源代码,但我想这是因为shell首先分叉,然后重定向,然后尝试exec(),当exec()失败时,它会向已经重定向的stderr发送一条错误消息。
答案 0 :(得分:0)
如果foobar是某些可执行文件,请尝试: -
$ ./foobar
sh: foobar: not found
$ ./foobar 2>/dev/null #alternatively you can use full path.
$