コマンドやシェルスクリプトを実行すると出力が出るとしましょう。このコマンドやシェルスクリプトの内部内容について何も知らない状態で、出力が出力されているかどうかをstderr
どうやって確認できますかstdout
?
例えば、
$ ls -ld /
drwxrwxr-t 35 root admin 1258 Dec 11 19:16 /
比較済み
ls -ld /test
ls: /test: No such file or directory
stdout
最初のコマンドがに印刷され、2番目のコマンドがstderr
(そうですか?)に印刷されているかどうかを確認できますか?
ベストアンサー1
出力が印刷されたかどうかを知る方法はありません。この場合stdout
と両方がstderr
端末に接続されているため、テキストが端末に表示されるまでどのストリームに書き込まれたかに関する情報は、端末に到達する前にプログラムによってまとめられます。
上記の場合は、コマンドを実行しstdout
てstderr
別の場所にリダイレクトして何が起こるかを確認できます。またはstdout
、リダイレクトを使用して1回、リダイレクトを/dev/null
使用して1回、2回実行し、どのような場合にテキストが表示されるかを確認します。stderr
/dev/null
コマンドラインの末尾に追加してリダイレクトすることもstdout
、追加してリダイレクトすることもできます。/dev/null
>/dev/null
stderr
/dev/null
2>/dev/null