errexit オプションが有効な場合、コマンドが失敗するとスクリプトは終了します。失敗すると予想される特定のコマンドに対してこの動作を元に戻したいと思います。つまり、続けたいです。〜しない限り表示されたコマンドが失敗しました。
私は現在このようなことをしていますが醜いです。
some_test() {
# retuns nonzero if some condition is met, and zero otherwise
}
some_change() {
# makes a change that should alter the return code of the above test
}
set -e
some_test
echo "expected success, found it"
some_change
set +e
some_test # expect failure
if [[ $? -eq 0 ]]
then
echo "expected failure, found success"
exit(1)
else
echo "expected failure, found it"
fi
set -e
# ...more testing below
もっと簡潔なものを探しています。私もできることを知っています我慢次のコマンドが失敗しました。
some_test
some_change
some_test && true
しかし、私は失敗を容認したくない、失敗を主張したい。 2番目のテストに合格すると、スクリプトが失敗することを望みます。
ベストアンサー1
if my_command; then false; else true; fi
私はこれが条件付き体操でシミュレートできるとは信じていません。