Ist es möglich, per Shell-Skript zu überprüfen, ob Docker installiert ist.
Ich würde dies manuell überprüfen
sudo docker run --name hello-world-container hello-world
sudo docker rm hello-world-container
Ich möchte dies jedoch programmgesteuert überprüfen. Wenn dieser Test fehlschlägt, kann die Installationsroutine gestartet werden.
Aktualisieren
#!/bin/bash
which docker
if [ $? -eq 0 ]
then
docker --version | grep "Docker version"
if [ $? -eq 0 ]
then
echo "docker existing"
else
echo "install docker"
fi
else
echo "install docker" >&2
fi
shell-script
user3142695
quelle
quelle
which docker
? Warum muss ichdocker --version
danach suchen? Und wie kann ich den Exit-Code testen?which
Befehls zufrieden geben , aber das Überprüfen der Ausgabe desdocker --version
Befehls ist eine zusätzliche Sicherheit dafür, dass es sich um diedocker
erwartete ausführbare Datei handelt, anstatt um eine andere ausführbare Datei oder ein anderes Skript, das den Namen teilt. Beim Testen des Exit-Codes sehe ich, dass Ihre bearbeitete Frage eine Lösung enthält.docker --version
wäre besser, wie Sie erklärt haben, aber ich weiß nicht, wie ich das überprüfen soll, da es sich um eine Zeichenfolge handelt, aus der ich die Versionsnummer erhalten möchte (die nicht undefiniert sein sollte).docker --version | grep "Docker version"
. Wenn der Exit-Code lautet0
, liegt eine erfolgreiche Übereinstimmung vor, und die ausführbare Datei ist wahrscheinlich die ausführbare Docker-Datei.