ゼロ以外の値を返す場合は、フラグが設定されるようにシェルスクリプトにフラグを設定したいと思います(たとえば、同様の変数が設定されていますerrors="True"
)。
これまで、私はスクリプトを呼び出しscriptname.sh 2>Error.log
た後、次のことを検討しました。
if $(wc -l error.log) != 0; then
errors="True"
より良い方法が必要です。私を啓発してください。
答え1
これがまさにtrap ERR
目的です。残念ながら、同じ機能を持っていますset -e
。set -e
条件式でゼロ以外の値を返すすべてのコマンドはトラップをトリガします。以下はいくつかのサンプルコードです。
error=0
set_error() {
(( error++ ))
}
trap set_error ERR
ls askdjasdaj 2>/dev/null
false
false || true # false returns non-zero but is not counted due to the conditional
echo "$error" # outputs "2"