我想编写一个shell脚本来验证是否安装了docker。
如果安装了docker:
$ docker -v
Docker version 1.7.0, build 0baf609
$ echo $?
0
如果未安装docker:
$ docker -v
The program 'docker' is currently not installed. You can install it by typing:
apt-get install docker
$ echo $?
127
这是我的剧本:
#!/bin/bash
docker -v
if echo $? = 128 ; then
echo "The program 'docker' is currently not installed."
else
echo "Continuing with dockerized way"
fi
这里是为了测试目的,我在没有安装docker的机器上运行它,我保持127 = 128,条件错误,所以它应该进去,但仍然打印程序'docker'目前没有安装。我想知道我在这里失踪了什么。
答案 0 :(得分:1)
正确的语法是:
if [ $? -eq 128 ]; then
...
为了使其更加强大,您可能需要检查:
if [ $? -ne 0 ]; then
...