wget
を使用して、次のような2つのFIFOに大きなファイルをダウンロードします。
wget <wget-args> -O - | tee -a "$fifo1" >> "$fifo2"
失敗時にwget
のエラーコードを取得したい。
set -o pipefail
はパイプ内の右端のコマンドのエラーコードを返すため、エラーコードがwget
からのものであるかどうかはわかりません。
では、どうすれば灰でそれを行うことができますか?
Wgetのリターンコードをファイルにリダイレクトするだけです。ここでは$?
リターンコードが含まれています
$ (wget <wget-args> -O - ; echo $? > result) | tee -a "$fifo1" >> "$fifo2"
ここで、ファイルの結果には、操作のステータスコードが含まれます
$ cat result
0