如何重复一个命令n次然后退出?

如何重复一个命令n次然后退出?

我想要自动化安装,并且需要使用 gksu 运行下载的安装程序。我努力了:

尝试=0
  直到
  gksu 命令;做
    尝试=$((尝试+1))
    如果[“$尝试”-gt 3];然后
      1号出口
  完毕

但直到第三次尝试时它才会退出。 gksu 是否以退出代码 0 或非零退出代码退出并不重要。我希望发生的是:我怎样才能做到这一点?
while gksu command's exit code is not 0 and attempt number is not 3 repeat gksu command. If exit code is not 0 but attempt number is 3, exit the whole script. If exit code is 0 leave cycle and continue processing the script.

答案1

如果你有空seq,你可以这样做:

for attempt in $(seq 1 3)
do
  gksu command && break
done

如果seq不可用,但您有(并且想要使用)bash:

for((attempt=1;attempt<=3;attempt++))
do 
  gksu command && break
done

甚至更简单(向德鲁本):

for attempt in {1..3} 
do
  gksu command && break
done

相关内容