検索して解決方法を見つけましたここしかし、戻りステータスコード部分。
ご覧のとおり、サブシェルを使用してそこからステータスコードを取得できないので、この回答に基づいて次のように書きたいと思います。
(((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
親シェルには表示されません。ニーズに合わせてどのように修正できますか?