Keep it Simple
until nc -z 127.0.0.1 25565
do
echo ...
sleep 1
done
Lascia che la shell gestisca implicitamente lo stato di uscita
La shell può gestire lo stato di uscita (registrato in $? ) in due modi, esplicito e implicito.
Esplicito:status=$? , che consente un'ulteriore elaborazione.
Implicito:
Per ogni affermazione, nella tua mente , aggiungi la parola "succeeds" al comando, quindi aggiungi if , until o while costruisce intorno a loro, finché la frase non ha senso.
until nc riuscisce ; do ...; done
Il -z l'opzione interromperà nc dalla lettura di stdin, quindi non c'è bisogno del < /dev/null reindirizzare.
Potresti provare qualcosa come
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!"