J'ai un script bash qui exécute plusieurs commandes dans l'ordre et s'arrête si l'on renvoie un code d'erreur non nul et affiche le numéro de ligne pour aider à localiser la commande.Script Wrapper pour quitter le script principal avec débogage
Après chaque commande, j'exécute une fonction (exitIfLastCommandReturnCodeNotZero) qui vérifie si le code de sortie était correct et si ce n'est pas le cas, il affiche le numéro de ligne et le code d'erreur. Par exemple:
..
cmd1 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
cmd2 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
cmd3 param1 param2 ; exitIfLastCommandReturnCodeNotZero $? $LINENO
..
Cela fonctionne bien, mais est-il une fonction ou un script intégré qui peut simplement envelopper les commandes et me donner les mêmes fonctionnalités? Par exemple:
..
wrapperScript cmd1 param1 param2
wrapperScript cmd2 param1 param2
wrapperScript cmd3 param1 param2
..
ou mieux encore une fonction de niveau « bloc » qui exécute toutes les commandes et les sorties si une commande échoue. Par exemple:
WRAPPERSCRIPT_PSEUDOCODE {
..
cmd1 param1 param2
cmd2 param1 param2
cmd3 param1 param2
..
}
Idéalement, la sortie lorsqu'une commande ne devrait également inclure (à l'exception du numéro de ligne) le nom de la commande et les paramètres.
Vous pouvez définir '-E' si les fonctions, et sous-couches substitutions de commandes héritent le piège. –
c'est génial. – zaf