stdall.log、stderr.log、stdoutput.logに出力リダイレクト+ステータスコードを返す

stdall.log、stderr.log、stdoutput.logに出力リダイレクト+ステータスコードを返す

検索して解決方法を見つけましたここしかし、戻りステータスコード部分。

ご覧のとおり、サブシェルを使用してそこからステータスコードを取得できないので、この回答に基づいて次のように書きたいと思います。

(((cmd; status=$?) | tee stdout.log) 3>&1 1>&2 2>&3 | tee stderr.log) &> all.log
if [ $status -ne 0 ]
then
  # do something with stderr.log and stdall.log
fi

もちろん、私の例では$status親シェルには表示されません。ニーズに合わせてどのように修正できますか?

ベストアンサー1

おすすめ記事