Halten Sie es einfach
until nc -z 127.0.0.1 25565
do
echo ...
sleep 1
done
Lass die Shell einfach implizit mit dem Exit-Status umgehen
Die Shell kann mit dem Exit-Status umgehen (aufgezeichnet in $?
) auf zwei Arten, explizit und implizit.
Explizit:status=$?
, was eine weitere Verarbeitung ermöglicht.
Implizit:
Für jede Aussage, in Gedanken , fügen Sie dem Befehl das Wort „succeeds“ hinzu und fügen Sie dann if
hinzu , until
oder while
Konstrukte um sie herum, bis der Ausdruck Sinn ergibt.
until nc
erfolgt ; do ...; done
Die -z
Option stoppt nc
vom Lesen von stdin, also ist < /dev/null
nicht erforderlich umleiten.
Sie könnten so etwas wie
versuchenwhile true; do
nc 127.0.0.1 25565 < /dev/null
if [ $? -eq 0 ]; then
break
fi
sleep 1
done
echo "The command output changed!"