エラーレポートを送信すると、スクリプトは機能を終了しません。

エラーレポートを送信すると、スクリプトは機能を終了しません。

スクリプトを起動すると、まだプロセス状態であり、メールを送信した後に関数にエラーが発生します。

#!/bin/bash
LOG_FILE=/data/logs/file.log
DATE="$(date +%Y%m%d --date="1 day ago")"
##### STEPS #####

### STEP 1:

step_1(){
curl --location --request GET "http://url"
sleep 1m

if  grep -q 'completed!' $LOG_FILE | tail -1 ;then
        report_step_1
        step_2
else
        report_error_step_1
        exit 1
fi
}

### STEP 2:

step_2(){
curl --location --request GET "http://url"
sleep 30m
if  grep -q 'Generete Revenue File completed' $LOG_FILE | tail -1 ;then
        report_step_2
        step_3
else
        report_error_step_2
        exit 1
fi
}

### STEP 3:

step_3(){
curl --location --request GET "http:url"
sleep 30m
if  grep -q 'File correctly sent via ftp' $LOG_FILE | tail -3 ;then
        report_step_3
else
        report_error_step_3
        exit 1
fi
}

report_step_1(){
mail -s "OK" "mail" <<< "STEP 1 completato con successo"
}

report_step_2(){
mail -s "OK" "mail" <<< "STEP 2 completato con successo"
}

report_step_3(){
mail -s "OK" "mail" <<< "STEP 3 completato con successo"
}

report_error_step_1(){
mail -s "FAILED" "mail" <<< "Attenzione: STEP 1 fallito"
exit 5
}

report_error_step_2(){
mail -s "FAILED" "mail" <<< "Attenzione: STEP 2 fallito"
exit 5
}

report_error_step_3(){
mail -s "FAILED" "mail" <<< "Attenzione: STEP 3 fallito"
exit 5
}

step_1
exit 0

誰かが見て、なぜ出口が機能しないのか、そして他の機能ですべての出口が正しく設定されているのか教えてください。

関連情報