inにdash
対応するシェルに同様のオプションはありますか?pipefail
bash
または、パイプ内のコマンドの1つが失敗した場合にゼロ以外のステータスを取得する他の方法(ただし、終了しない場合set -e
)。
明確にするために、私が達成したいことの例を次に示します。
サンプルのデバッグ makefile では、私のルールは次のようになります。
set -o pipefail; gcc -Wall $$f.c -o $$f 2>&1 | tee err; if [ $$? -ne 0 ]; then vim -o $$f.c err; ./$$f; fi;
基本的にはエラー時にエラーファイルとソースファイルを開き、エラーがなければプログラムを実行します。タイピングの手間が省けます。上記のスニペットはうまく機能しますbash
が、私の新しい Ubunty システムでは、オプションdash
をサポートしていないようです。pipefail
以下のコマンドグループの最初の部分が失敗した場合、基本的に FAILURE ステータスが必要です。
gcc -Wall $$f.c -o $$f 2>&1 | tee err
それをif
ステートメントに使用できるようにします。
それを達成する別の方法はありますか?
ありがとう!