34

inにdash対応するシェルに同様のオプションはありますか?pipefailbash

または、パイプ内のコマンドの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ステートメントに使用できるようにします。

それを達成する別の方法はありますか?

ありがとう!

4

2 に答える 2