Comment vérifier les erreurs (et peut-être les avertissements) dans un script bash?Comment vérifier un script bash sans exécuter le script?
Je souhaite effectuer un pré-contrôle des scripts bash avant de les archiver dans un référentiel git.
Je sais que je peux utiliser bash -n script.sh
pour une première vérification simple, mais cela ne trouve pas par exemple des choses comme la réécriture sur une chaîne en lecture seule.
readonly unique_id = "42"
unique_id = "21"
sera ok pour un bash -n script.sh
mais échouera sur l'exécution bien sûr.
EDIT: le script suivant
#!/bin/bash
# check.sh
readonly unique_id="42"
unique_id="21"
donnent 0
si vous exécutez bash -n check.sh; echo $?
mais l'exécution elle-même les résultats dans le message d'erreur ./check.sh: line 4: unique_id: readonly variable
Les deux comportements sont corrects, car ce n'est pas une erreur de syntaxe, mais il sera encore briser l'exécution (même dans les tests unitaires) et je demande s'il y a une autre façon de filtrer ces erreurs.
Unittest ne trouvera que attendue défaillances logiques, donc ce n'est pas une alternative.
Les deux lignes affichées ci-dessus sont * erronées *. Vous devez supprimer les espaces entourant '='. – devnull
Oui, vous avez raison; J'ai enlevé les blancs et ajouté un shebang pour obtenir un exemple du monde réel. Merci – user762353