2013-01-18 28 views
0

我想寫一個腳本來檢查幾個函數返回並在返回的情況下1在日誌文件中寫入併發送給我一封電子郵件,但循環未按預期工作:需要在bash函數中循環的建議

  1. 如果成功打印一切正常
  2. 如果更新失敗,它會在日誌中寫入兩行「失敗」和「完成」並向我發送一封電子郵件。

請幫助找到一個錯誤?

w2log() { 
if [[ $? = 0 ]] ; then 
    echo "=== Everything looks good ! DONE `date` ===" >> $LOG; 
else 
    echo "=== Something went wrong ! FAILED `date` ===" >> $LOG && errmail 
fi 
} 

updaterepos() { 
    syn6332 
    syn5864 
    for repo in syn6332 syn5864; do 
     w2log 
    done 
} 

updaterepos 

回答

1

也許類似的東西(如果你想爲每個命令w2log報告):

updaterepos() { 
    for repo in syn6364 syn5864 ; do 
     $repo 
     w2log 
    done 
} 

功能檢查$?應立即命令返回的狀態後調用。函數調用還設置了$? - 這就是爲什麼當你第二次調用w2log時你得到第二個「完成」行。

+0

謝謝!這很簡單) – user1990511