当docker push失败时如何在bash脚本中循环3次?

Ali*_*eza 9 bash for docker exit-status

我有一个 bash 脚本,它只是 docker 推送图像:

docker push $CONTAINER_IMAGE:latest
Run Code Online (Sandbox Code Playgroud)

当这失败时,我想循环 3 次。我应该如何实现这一目标?

pLu*_*umo 22

使用for-loop&& break

for n in {1..3}; do
    docker push $CONTAINER_IMAGE:latest && break;
done
Run Code Online (Sandbox Code Playgroud)

break退出循环,但仅在docker push成功时运行。如果docker push失败,它将退出并出错,循环将继续。

  • 从技术上讲,OP 希望它在 ** 失败时** 循环 3 次。那么,循环计数器不应该是 **4** 吗? (4认同)

arn*_*rna 5

您还可以使用:

for n in {1..4}; do
     if docker push $CONTAINER_IMAGE:latest  
     then 
          break;
     fi
done
Run Code Online (Sandbox Code Playgroud)

then仅当 docker 命令成功时才会输入该语句。