0
誰かがtimeout
がパイプコマンドに対してどのように機能するか説明できますか?例えば、ここで パイプコマンドのタイムアウト呼び出し
timeout 2s a | b
は
a
コマンドにのみ適用される
timeout
のですか?
タイムアウトが実際に発生した場合、パイプが壊れますか?
誰かがtimeout
がパイプコマンドに対してどのように機能するか説明できますか?例えば、ここで パイプコマンドのタイムアウト呼び出し
timeout 2s a | b
は
a
コマンドにのみ適用される
timeout
のですか?
はい、timeout
は組み込みコマンドではないので、引数timeout
,2s
およびa
で実行されます。タイムアウトが発生すると、b
にあるパイプの読み込み側は、その中のすべてのデータが読み込まれると(パイプに書き込む処理が残っていないため)EOFを示します。しかしb
は、(タイムアウトのためかタイムアウトの前に終了したのかにかかわらず)a
からのSIGPIPE信号を出力しません。破損したパイプは、読み取り側ではなく書き込み側で問題となります。
はい、 'timeout'は標準のコマンドであり、組み込みではないので、' timeout'、 '2s'、' a'の引数で実行されます。タイムアウトが発生した場合、 'b'のパイプはそのパイプ内のすべてのデータが読み込まれた時点でEOFを示します(パイプに書き込む処理が残っていないため)。しかし、破損したパイプは、書き込み側では問題であり、読み取り側では問題ではありません。 –
@JonathanLeffler:ありがとう、素敵なメモ: – sjsam