2013-01-18 27 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