私は結果に応じて最後に実行されたコマンドと分岐の結果をテストする洗練された方法を探しています。私が作ろうとしている構成は、次のとおりです。前のコマンドの結果に応じてテスト&分岐するエレガントな構造
if /bin/true ; then
do_stuff
fi
これは成功のためにテストしたいときに効果的です。しかし、どうすれば失敗をテストできますか?私は集中的なエラーチェックをやっているときに、私がやりたいことは、こののと同等です:
if ! /bin/true ; then
do_error_handling
fi
私がこれまでに発見した最良の解決策は、私のスクリプトに2つの単純なマクロを定義することです:
onSuccess() { [[ $? -eq 0 ]]; }
onError() { [[ $? -ne 0 ]]; }
それから私はこのようなものを行うことができます。
some_command
if onError ; then
# error handling block
fi
しかし、私は私が書くすべてのスクリプトでこれらのマクロを複製する必要はありませんので、私はbashで内蔵のものを使用して、より多くのを好むだろう。
私のこの「問題」は、書くべきコードのスタイルに関するものです。私は反復的にif [ $? -ne 0 ]
醜さをエスケープしたい。
これはスタイルに関することです。私がそれらを必要としない場合、完全なif..elseブロックの使用については忘れてください。 –
組み込みのbashコマンドである "true"と "false"があります。/bin/trueを使用すると、特に必要のないサブプロセスが実行されます。 – jordanm