GNU/Linux >> Linux Esercitazione >  >> Linux

Bash:loop fino a quando lo stato di uscita del comando è uguale a 0

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

Linux
  1. Codici di uscita della riga di comando di Bash demistificati

  2. La differenza tra gli operatori Bash [[ Vs [ Vs ( Vs ((?

  3. Tieniti aggiornato - Bash For, While, Until Esempi di loop

  4. comando di esportazione bash

  5. Come ottenere lo stato di uscita un ciclo in bash

Bash wait Comando

Bash mentre Loop

Bash fino a Loop

Comando di uscita Bash e codici di uscita

Comando Bash printf

Bash Scripting - Mentre e fino a ciclo spiegato con esempi