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

foob​​ar の stderr のみをリダイレクトしようとしています (foobar が存在し、実行できる場合) が、シェルのエラー メッセージもリダイレクトされます。これは bash、ksh、および sh で発生しますが、csh では発生しません。私は bourne シェルのソース コードに詳しくありませんが、これは、シェルが最初にフォークし、次にリダイレクトしてから exec() を試行し、exec() が失敗すると、既にリダイレクトされているエラー メッセージを stderr に送信するために発生すると思います。

4

1 に答える 1

0

foob​​arが実行可能ファイルの場合は、次のことを試してください。-

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