Aqui está uma variante ainda mais simples da sugestão de @ terdon:
while ! command_to_run; do
echo "failed, retrying"
sleep 1
done
while
recebe um comando, portanto, pode testar o sucesso / falha de command_to_run
diretamente, em vez de ter que lidar com $?
. Normalmente, while
executa o loop desde que o comando seja bem-sucedido; neste caso, eu uso !
para negar isso e executar o loop enquanto o comando falhar (ou seja, até que seja bem-sucedido).