Bash が特定のコマンドのエラーを無視する 質問する

Bash が特定のコマンドのエラーを無視する 質問する

私は以下のオプションを使用しています

set -o pipefail
set -e

bash スクリプトで、エラー発生時に実行を停止します。実行中のスクリプトが約 100 行あり、スクリプト内のすべての行の戻りコードをチェックしたくありません。

しかし、特定のコマンドについては、エラーを無視したいのですが、どうすればいいでしょうか?

ベストアンサー1

ソリューション:

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

おすすめ記事