GNU/Linux >> Znalost Linux >  >> Linux

Bash:Smyčka, dokud se stav ukončení příkazu nerovná 0

Keep it Simple

until nc -z 127.0.0.1 25565
do
    echo ...
    sleep 1
done

Nechte shell implicitně řešit stav ukončení

Shell se dokáže vypořádat se stavem ukončení (zaznamenaným v $? ) dvěma způsoby, explicitním a implicitním.

Explicitní:status=$? , což umožňuje další zpracování.

Implicitní:

U každého výroku v mysli , přidejte k příkazu slovo "úspěch" a poté přidejteif , until nebo while konstrukty kolem nich, dokud tato fráze nedává smysl.

until nc úspěch ; do ...; done

-z volba se zastaví nc z čtení stdin, takže není potřeba < /dev/null přesměrování.


Můžete zkusit něco jako

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. Rozdíl mezi operátory Bash [[ Vs [ Vs ( Vs ((?

  2. Jak bude Bash hodnotit následující kód?

  3. Bash Shell Exit Status Tutorial s praktickými příklady

  1. Udržujeme vás ve smyčce – příklady opakování pro, Zatímco, dokud

  2. příkaz 'x86_64-linux-gnu-gcc' selhal se stavem ukončení 1

  3. Spusťte příkaz bash na jenkins pipeline

  1. Ukončovací kódy příkazového řádku Bash byly demystifikovány

  2. příkaz pro export bash

  3. Co dělá -e v bash shebang?