Jak mohu zkontrolovat bash skript, pokud toto
sudo docker images -q nginx
mi dává výsledný řetězec, což znamená, že tento kontejner existuje
sudo docker images -q nginx
if [ $? != '' ]
then
echo "existing"
else
echo "missing
Přijatá odpověď:
$? není řetězec, ale stav ukončení sudo (v tomto případě). Chcete-li to správně použít, porovnejte to s nulou s -gt , nebo použijte if (( $? )) (v prostředí jako bash nebo ksh93 který provádí aritmetické vyhodnocení pomocí (( ... )) ).
Pokud sudo docker images -q nginx vám dá řetězec, pokud kontejner existuje, a nic, pokud neexistuje, pak jej můžete uložit do proměnné a zjistit, zda je prázdná nebo ne:
result=$( sudo docker images -q nginx )
if [[ -n "$result" ]]; then
echo "Container exists"
else
echo "No such container"
fi