我正在尝试为下面的伪代码构建逻辑:
if 'main' job fails
sleep 60
re-trigger main job for 3 times.
after re-triggering for 3 times if it still fails ,
then kill the main job .
ksh 123.ksh ##main command
if [[ $?!=0 ]]
then
sleep 30
ksh 123.ksh
if [[ $?!=0 ]]
then
sleep 30
ksh 123.ksh
fi
fi
这里我可以再加一美元吗?检查然后做一个睡眠30,这样我可以继续3或4次。但我正在寻找更通用的方式。
我无法想出重新触发 3 次并失败的逻辑。
答案1
一种选择:
#! /bin/sh -
remaining_attempts=3; until main-job; do
if [ "$(( remaining_attempts -= 1 ))" -eq 0 ]; then
echo>&2 "Giving up"
exit 1
fi
sleep 60
done