if [[ $current_version != $new_version ]]; #new version is available
then
mv_date=`date '%H'`
if [[ $mv_date -eq 9 ]];
then
aws sns publish --topic-arn "arn:aws:sns:xxxxxxxxxxxx:maintenance-test" --message "New Engine Version : $new_version is available for $database database." >> $engineversion_folder/m3.txt
elif [[ -f $engineversion_folder/m3.txt ]] && [[ -s $engineversion_folder/m3.txt ]];
then
echo "Notification already sent!"
fi
else
rm -rf $engineversion_folder/m3.txt
fi
你好,這是我的示例代碼。該腳本設定為每小時運行一次,但我只想在滿足條件時收到一次通知。鑒于該宣告仍然正確,我只想在上午 9 點收到一次通知,如代碼中所述。當代碼再次運行時,我應該不會再收到一封通知我有新版本的電子郵件。我應該在我的代碼中進行哪些更改才能使其正常作業?
如果當前版本與新版本不同,它將通過電子郵件通知我有新版本可用。我還將輸出保存到另一個檔案。
我添加的另一個條件是檔案是否已經存在且不為空,這意味著通知已通過電子郵件發送給我,即使該宣告仍然正確,我也不應該能夠收到另一封電子郵件。
當條件為 FALSE(當前版本 = 新版本)時,創建的文本檔案被簡單地洗掉。
uj5u.com熱心網友回復:
看起來您需要更早if地對$engineversion_folder/m3.txt檔案存在進行測驗,可能是這樣的:
if [[ $mv_date -eq 9 ]];
then
if [[ -f $engineversion_folder/m3.txt ]] && [[ -s $engineversion_folder/m3.txt ]];
then
echo "Notification already sent!"
else
aws sns publish --topic-arn "arn:aws:sns:xxxxxxxxxxxx:maintenance-test" --message "New Engine Version : $new_version is available for $database database." >> $engineversion_folder/m3.txt
fi
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/525523.html
標籤:linux重击壳if 语句嵌套循环
