私はこれを持っています:
node ${SUMAN_RUNNABLE} | tee -a run.sh.log
EXIT_CODE=$?;
しかし、teeはノード実行可能ファイルの代わりにコードを提供するため、終了コードは常にゼロに見えます。
この場合、ノード実行可能ファイルから終了コードをキャプチャする方法はありますか?
答え1
~からhttps://stackoverflow.com/a/1221870/5020949:
名前付きの内部Bash変数があります
$PIPESTATUS
。これは、最後のフォアグラウンドコマンドパイプラインの各コマンドの終了ステータスを保持する配列です。<command> | tee out.txt ; test ${PIPESTATUS[0]} -eq 0
あるいは、他のシェル(zshなど)でも機能するもう1つの代替方法は、パイプライン障害を有効にすることです。
set -o pipefail ...
最初のオプションはいいえ
zsh
構文が少し異なるので、これはうまくいきます。