gnu bash shell logo

Como fazer o Linux rodar um comando até ele dar certo

Às vezes pode ser necessário persistir na execução de um comando no Linux, até que ele retorne com sucesso.
Este código pode ser executado na linha de comando ou dentro de um script.
O comando ping é comumente usado dentro de um laço (ou loop) while, quando queremos ser avisados de que um certo nó na rede já se encontra online e conectado.
Há várias outras situações em que pode ser desejável manter o sistema operacional na tentativa de execução de um comando — até ele “dar certo”.
Veja um exemplo de uso com o ping:


while true; do ping -c 1 192.168.1.100 && break; done;

PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
From 192.168.1.4 icmp_seq=1 Destination Host Unreachable

--- 192.168.1.100 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
From 192.168.1.4 icmp_seq=1 Destination Host Unreachable

--- 192.168.1.100 ping statistics ---
1 packets transmitted, 0 received, +1 errors, 100% packet loss, time 0ms

PING 192.168.1.100 (192.168.1.100) 56(84) bytes of data.
From 192.168.1.4 icmp_seq=1 Destination Host Unreachable

...

Se tiver interesse em ler mais sobre o uso de loops no Bash, leia Exemplos de laços na Bash shell.

Publicado por

Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como “Rick and Morty” e “BoJack Horseman”.
Me siga no Twitter e vamos trocar ideias!

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *