retry until

do.sh

#!/bin/bash
repeat() { while :; do $@ && return; sleep 1; done }

retryuntil() {
    echo $(date +%F%n%T)

    msg=`./job.sh 2>&1`
    echo $msg
    #echo "$msg" >> info.txt

    result=$(echo "$msg" | grep "ERR")

    if [[ "$result" != "" ]]
    then
        echo "Failed! Retry!"
        return 1
    else
        echo "Done!"
        return 0
    fi
}

repeat retryuntil

job.sh

npm i

在job中进行操作,do.sh中根据job.sh的输出信息判定是否成功,失败重试。

until ./runme
do
    sleep 10
done


while ! ./runme
do
    sleep 10
done


max_retry=5
counter=0
until <YOUR_COMMAND>
do
   sleep 1
   [[ counter -eq $max_retry ]] && echo "Failed!" && exit 1
   echo "Trying again. Try #$counter"
   ((counter++))
done


n=0
until [ "$n" -ge 5 ]
do
   command && break  # substitute your command here
   n=$((n+1))
   sleep 15
done


while true; do
    nc 127.0.0.1 25565 < /dev/null
    if [ $? -eq 0 ]; then
        break
    fi
    sleep 1
done
echo "The command output changed!"
posted @ 2020-08-13 11:36  fndefbwefsowpvqfx  阅读(120)  评论(0编辑  收藏  举报