Mantenlo simple
until nc -z 127.0.0.1 25565
do
echo ...
sleep 1
done
Deje que el shell se ocupe implícitamente del estado de salida
El shell puede lidiar con el estado de salida (registrado en $?
) de dos formas, explícita e implícita.
Explícito:status=$?
, que permite un procesamiento posterior.
Implícito:
Para cada afirmación, en tu mente , agregue la palabra "éxito" al comando y luego agregue if
, until
o while
construye a su alrededor, hasta que la frase tenga sentido.
until nc
tiene éxito ; do ...; done
El -z
la opción detendrá nc
de leer stdin, por lo que no hay necesidad de < /dev/null
redirigir.
Podrías intentar algo como
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!"