エラーが発生した場合は、シェルスクリプトを終了してユーザーにメッセージを送信する方法は?

エラーが発生した場合は、シェルスクリプトを終了してユーザーにメッセージを送信する方法は?

シェルスクリプトファイルがあります/bin/foo

エラーが発生した場合は、シェルスクリプトを終了してユーザーにメッセージを送信する方法は?

a を使用するとset -eエラーで終了しますが、STDOUT にメッセージを送信したりメールを送信したりするなど、エラーが発生した場合は何も実行しません。

Q:シェルスクリプトが失敗した場合、コマンドをどのように実行しますか?

SLES12、バッシュ。

ベストアンサー1

ユーザーにメッセージを送信し、trapスクリプトがエラーで終了したときに実行する関数を作成できます。

#!/bin/bash

set -e

on_exit () {
    echo "This script has exited in error"
}

trap on_exit ERR

echo 'yes' | grep "$1"

使用中:

$ ./script.sh yes
yes
$ ./script.sh no
This script has exited in error

おすすめ記事