如何循环运行 exec 命令直到成功

如何循环运行 exec 命令直到成功

我想在 redhat linux 上运行 exec $Docker-run 命令直到成功。循环执行它?

$Docker-run = docker run --env-file .env Image-name

有人能提供解决方案吗?

答案1

一个简单的 while 循环和条件语句就可以为您做到这一点。

例如

#!/usr/bin/env bash

CONTAINER_SUCCESS=0
while [ $CONTAINER_SUCCESS -ne 1 ]; do
  docker run --rm alpine uname -a
  CONTAINER_EXIT=$?
  if [ $CONTAINER_EXIT -eq 0 ]; then
    CONTAINER_SUCCESS=1
  fi
done

运行 时uname -a,退出代码为0,且脚本未循环。运行 时failure,没有与此匹配的二进制文件,且运行命令继续执行。

这确实假设您的成功状态是0,但可以根据您的需要进行编辑。

相关内容