shell - 在ssh shell脚本中检查docker版本

标签 shell ssh docker

我正在使用Shell脚本将服务器装入服务器并运行一些docker命令。但是,某些命令在Docker版本1.7中失败。我有一个针对1.7的修复程序,但是如果我一直使用它,则运行shell脚本将花费更长的时间。因此,我想检查该版本,如果它是1.7,请回到较慢的脚本。否则运行不错的快速版本。

思考类似

if ssh -l root $1 "docker -v === '1.7.*'"
then
    echo "Docker version 1.7!"
else 
    echo "Docker version not 1.7!"
fi

显然,这是行不通的。有任何想法吗?

最佳答案

您可以使用:

if [[ $(ssh -l root "$1" 'docker -v') == *" 1.7."* ]]; then
    echo 'Docker version 1.7!'
else 
    echo 'Docker version not 1.7!'
fi
  • 您需要使用命令替换ssh
  • 来获取整个$(...)命令的输出
  • Shell支持===,但不支持===
  • 将全局字符保留在报价
  • 之外

    关于shell - 在ssh shell脚本中检查docker版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38839444/

    相关文章:

    docker - 如何使用 Docker 创建分布式 spark 集群

    docker 设计: exchange data between containers or put multiple processes in one container?

    linux - 在unix中使用sed将文件中的所有单词转换为*

    linux - 如何在shell脚本中获取单行数据

    mysql - while 循环中的变量不会被记住。 Mysql bash脚本auto_increment

    linux - 从远程 ssh 主机提取文件

    windows - 同一台机器上的多个 Bitbucket SSH 帐户

    macos - 从SSH返回时维护选项卡名称

    linux - docker 卷的挂载点名称

    linux - 如何安装git lfs