0

我正在尝试编写一个脚本来检查几个函数返回,如果返回 1 写入日志文件并向我发送电子邮件,但循环没有按预期工作:

  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
4

1 回答 1

1

也许是这样的(如果你想要w2log每个命令的报告):

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

$?应在命令返回状态后立即调用函数检查。函数调用也设置$?了——这就是为什么你在第二次调用时得到第二个“完成”行的原因w2log

于 2013-01-18T13:27:57.480 回答