sha*_*nuo 1 scripting shell shell-scripting
我需要执行一个命令并检查它是否成功。如果出现错误,我应该再试一次,以下代码按预期工作。
但是如果我需要尝试相同的命令 3 或 4 次直到它成功执行怎么办?if / else 子句将变得非常复杂。
some command
if [ $? -eq 0 ];then
echo "success"
else
echo "failed first attempt trying again"
some command
if [ $? -eq 0 ];then
echo "success in second attempt"
else
echo "failed second attempt"
fi
fi
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来编写一个脚本,在退出前尝试该命令 4 次?
Sir*_*rch 11
使用循环执行 /usr/local/some/command 由 MAX_TRIES 指定的次数。如果所有执行尝试均不成功,则会出现代码 $ERR 错误。如果成功,它会立即退出0,并跳出循环。
#!/bin/bash
ERR=1 # or some non zero error number you want
MAX_TRIES=4
COUNT=0
while [ $COUNT -lt $MAX_TRIES ]; do
/usr/local/some/command
if [ $? -eq 0 ];then
exit 0
fi
let COUNT=COUNT+1
done
echo "Too many non-successful tries"
exit $ERR
Run Code Online (Sandbox Code Playgroud)
如果您愿意,可以使用 ac 样式进行循环
#!/bin/bash
ERR=1 # or some non zero error number you want
MAX_TRIES=4
for (( i=1; i<=$MAX_TRIES; i++ ))
do
/usr/local/some/command
if [ $? -eq 0 ];then
exit 0
fi
done
echo "Too many non-sucessful tries"
exit $ERR
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5651 次 |
最近记录: |