ksh,在达到循环最大值时执行操作

时间:2014-05-21 14:09:34

标签: loops ksh

我希望编写一个小的korn shell脚本进行5次测试(通过在每次测试之前等待一段时间)然后,如果它们全部失败,则执行操作。

我正在做类似的事情:

    for i in {1..5}
    do
       "doMyTest"             #it fills a variables "status" (but can unfortunately fails)
       if [ "$status" ]; then #if status is filled then we can leave the loop
          break
       fi
       sleep 3                #else wait some time before doing another try
    done

    if [ -z "$status" ]; then
       exit 1
    fi

... then the rest of my program

你知道我怎么能以更好的方式做到这一点? 听起来有点多余......

非常感谢。

1 个答案:

答案 0 :(得分:1)

您只想在所有测试失败时看到失败? 当一个测试成功时可以跳过其他测试,可以使用

test1 || sleep 3 && \
   test2 || sleep 3 && \
   test3 || sleep 3 && \
   test4 || sleep 3 && \
   test5 || exit 1