解決策:
particular_script || true
例:
$ cat /tmp/1.sh
particular_script()
{
false
}
set -e
echo one
particular_script || true
echo two
particular_script
echo three
$ bash /tmp/1.sh
one
two
three
印刷されることはありません。
また、pipefail
のときに追加したい がオンの場合、パイプ内のコマンドの 1 つにゼロ以外の終了コードがある場合 (pipefail
それは最後のものでなければなりません)。
$ set -o pipefail
$ false | true ; echo $?
1
$ set +o pipefail
$ false | true ; echo $?
0
|| true
を追加するだけです エラーを無視したいコマンドの後。
停止せず、終了ステータスも保存
特定のコマンドが失敗した場合にスクリプトを停止させず、失敗したコマンドのエラー コードも保存したい場合:
set -e
EXIT_CODE=0
command || EXIT_CODE=$?
echo $EXIT_CODE