GNU/Linux >> Tutoriales Linux >  >> Linux

Bash:Bucle hasta que el estado de salida del comando sea igual a 0

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!"

Linux
  1. Códigos de salida de la línea de comandos de Bash desmitificados

  2. La diferencia entre los operadores Bash [[ Vs [ Vs ( Vs ((?)

  3. Tutorial de estado de salida de Bash Shell con ejemplos prácticos

  4. Manteniéndote al tanto – Bash For, While, Until Ejemplos de bucles

  5. error:el comando 'gcc' falló con el estado de salida 1 en CentOS

Comando de espera bash

Golpear mientras se repite

Golpear hasta bucle

Comando de salida de Bash y códigos de salida

Comando Bash printf

Secuencias de comandos de Bash:ciclo while y till explicado con ejemplos