16

I need to check in a shell script if Docker is installed (Ubuntu server).

I came up with this, but the syntax is not correct.

if [[ which docker && docker --version ]]; then
  echo "Update docker"
  # command
else
  echo "Install docker"
  # command
fi

I also tried if [ which docker ] && [ docker --version ]; then

halfer
  • 19,824
  • 17
  • 99
  • 186
user3142695
  • 15,844
  • 47
  • 176
  • 332

2 Answers2

32

Using suggestions from the answer in rickdenhaan's comment:

if [ -x "$(command -v docker)" ]; then
    echo "Update docker"
    # command
else
    echo "Install docker"
    # command
fi
7

This one is working for me:

if [[ $(which docker) && $(docker --version) ]]; then
    echo "Update docker"
    # command
  else
    echo "Install docker"
    # command
fi
ipeacocks
  • 2,187
  • 3
  • 32
  • 47