前のコマンドがゼロ以外の値を返した後にスクリプトが中断される前に1つ以上のコマンドを実行させるにはどうすればよいですか?

前のコマンドがゼロ以外の値を返した後にスクリプトが中断される前に1つ以上のコマンドを実行させるにはどうすればよいですか?

いくつかのファイル処理を実行するためにPerlスクリプトを呼び出すシェルスクリプトがあります。 Perlスクリプトは0または1の値で終了します。set -ePerl スクリプトが値 1 で終了すると、スクリプトを中断するためにスクリプトの先頭に Unix コマンドがあります。 UnixにPerlスクリプトが値で終了した場合、スクリプトが中断される前にコマンドを実行するコマンドがあるかどうか疑問に思います。本質的に、私はスクリプトがPerlスクリプトが正常に実行されたかどうかを知らせる電子メールを私に送信したいと思います。私のコードは次のようになります。

#!/bin/bash

set -e

function email_success {
#Some code for the email 
}

function email_fail {
#Some code for the email
}

usr/bin/perl perlscript.pl

if [$? -eq 0]; then 
 email_success
else 
 email_fail
fi 

#More commands to be executed if its successful 

ベストアンサー1

set -e失敗したブランチにシャットダウンを使用して追加しないでくださいif。スクリプトの残りの部分にその動作が含まれるようにするには、set -e電子メールの呼び出し後に追加してください。

おすすめ記事