如何检查Unix shell脚本中是否安装了Docker?

use*_*695 5 shell ubuntu docker

我需要检入Shell脚本(如果已安装Docker)(Ubuntu服务器)。

我想出了这一点,但语法不正确。

if [[ which docker && docker --version ]]; then
  echo "Update docker"
  # command
else
  echo "Install docker"
  # command
fi
Run Code Online (Sandbox Code Playgroud)

我也试过 if [ which docker ] && [ docker --version ]; then

Chr*_*ich 9

使用rickdenhaan评论中的答案建议:

if [ -x "$(command -v docker)" ]; then
    echo "Update docker"
    # command
else
    echo "Install docker"
    # command
fi
Run Code Online (Sandbox Code Playgroud)

  • 它测试文件是否存在并且是可执行的。`command` 命令返回 docker 命令的位置,然后 `-x` 标志测试它在那里并且能够执行。 (2认同)

ipe*_*cks 8

这对我有用:

if [[ $(which docker) && $(docker --version) ]]; then
    echo "Update docker"
    # command
  else
    echo "Install docker"
    # command
fi
Run Code Online (Sandbox Code Playgroud)