在ssh shell脚本中检查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
- 你需要使用命令replace
$(...)
来输出整个ssh
命令 - Shell支持
==
或=
而不是===
- 保持引号之外的glob字符
Docker有一个-H选项,允许你指向另一个主机上的docker引擎。 使用此来获取版本并确定要运行的内容。
if [[ $(docker -H my.host version | grep '1.7') ]]; then Thing 1 else Thing 2 fi