232 votes

À plusieurs reprises exécuter un shell de commande jusqu'à la panne?

J'ai écrit un flou test qui échoue un mauvais fonctionnement. J'ai ajouté un peu de débogage de code, mais maintenant je veux exécuter le test jusqu'à la panne afin que je puisse recueillir la sortie de débogage.

J'ai configuré le test afin que je puisse l'exécuter à l'aide de:

./runtest

Ma solution actuelle est d'écrire un untilfail script:

#!/bin/bash
$@
while [ $? -eq 0 ]; do
    $@
done

Ensuite l'utiliser:

untilfail ./runtest

Est-il une solution plus simple?

400voto

nneonneo Points 56821

while prend une commande à exécuter, vous pouvez donc utiliser la plus simple

while ./runtest; do :; done

Cela va arrêter la boucle lors de la ./runtest renvoie une valeur non nulle en code de sortie (qui est généralement un bon indicateur de l'échec).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X