Restez simple
until nc -z 127.0.0.1 25565
do
echo ...
sleep 1
done
Laissez simplement le shell gérer le statut de sortie implicitement
Le shell peut gérer le statut de sortie (enregistré dans $?
) de deux manières, explicite et implicite.
Explicite :status=$?
, ce qui permet un traitement ultérieur.
Implicite :
Pour chaque déclaration, dans votre esprit , ajoutez le mot "réussit" à la commande, puis ajoutez if
, until
ou while
construit autour d'eux, jusqu'à ce que la phrase ait un sens.
until nc
réussit ; do ...; done
Le -z
l'option arrêtera nc
de lire stdin, il n'y a donc pas besoin du < /dev/null
rediriger.
Vous pouvez essayer quelque chose comme
while true; do
nc 127.0.0.1 25565 < /dev/null
if [ $? -eq 0 ]; then
break
fi
sleep 1
done
echo "The command output changed!"