プログラムをコンパイルするスクリプトがあります。プログラムは最初にコマンドを使用してソースコードをコンパイルし、それをconfigure && make
使用しますmake test
。スクリプトはset -e
エラーをキャッチするためにも使用されます。
今私が望むのは、スクリプトの設定を維持し、set -e
エラーが発生してもスクリプトを実行し続けることです。エラーが発生してもテスト実行をmake test
試してみましたが、コマンドがハングして停止します。make -k test
set -e
また、どのテストが失敗するかを知っているので、スクリプトがこれらのエラーキャプチャをスキップするように指示する方法はありますか?
答え1
make test || true
例えば
#!/bin/sh
set -e
echo hello
make test || true
echo done
結果は次のとおりです。
hello
make: *** No rule to make target `test'. Stop.
done
この場合、失敗はルールの欠落(Makefileなし:-)が原因で発生しますが、スクリプトが続くことがわかります。
答え2
set -e
フリップを使用できますset +e
。
#!/bin/sh
set -e
configure && make
set +e
make test
...