Outils pour utilisateurs

Outils du site


dev:bash:debogage

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
dev:bash:debogage [2022/11/23 00:04] yoanndev:bash:debogage [2022/11/23 13:48] (Version actuelle) yoann
Ligne 3: Ligne 3:
 ====== Débogage de scripts shell ====== ====== Débogage de scripts shell ======
  
-Avant toute exécution, on peut vouloir valider la syntaxe d'un fichier de script. Pour cela on peut invoquer un shell avec l'option -n (noexec):+Avant toute exécution, on peut vouloir valider la syntaxe d'un fichier de script. Pour cela on peut invoquer un shell avec l'option -n (noexec) et le scrit à vérifier en paramètre:
  
 <code bash> <code bash>
Ligne 9: Ligne 9:
 </code> </code>
  
-Le shell Bash peut être invoqué avec l'option **-x** pour activer le mode trace/debug. Les commandes sont affichées sur la sortie standard avant exécution préfixées par le caractère '+';+Le shell Bash peut être invoqué avec l'option **-x** pour activer le mode trace/debug. Les commandes sont affichées sur la sortie standard avant exécution préfixées par le caractère '+'
 + 
 +Dans l'exemple ci-dessous le script utilise en première ligne le shabang pour spécifier l'interpréteur à utiliser (bash) avec l'option **-x** (**xtrace**) ainsi les commandes présentes dans le script seront affichées avant exécution.
  
 <code bash> <code bash>
Ligne 17: Ligne 19:
 </code> </code>
  
-A tout moment dans un script on peut activer désactiver l'option via la commande interne **set**:+A tout moment dans un script on peut activer/désactiver l'option via la commande interne **set**:
 <code bash> <code bash>
-activer l'affichage des commandes avant exécution+Activer l'affichage des commandes avant exécution
 set -x set -x
  
Ligne 27: Ligne 29:
 # désactiver l'affichage des commandes avant exécution # désactiver l'affichage des commandes avant exécution
 set +x set +x
 +
 +# équivalent
 +set +o xtrace
 </code> </code>
  
-Ci dessous quelques options couramment utilisées pour déboguer:+Ci-dessous quelques options couramment utilisées pour le développement et le débogage:
  
 ^ Notation courte ^ Notation longue ^ Résultat                                      | ^ Notation courte ^ Notation longue ^ Résultat                                      |
 +| set -e          | set -o errexit  | Interruption immédiate lorsqu'un code de retour est différent de 0. |
 | set -f          | set -o noglob   | Désactive la génération des noms via les méta-caractères (globbing).| | set -f          | set -o noglob   | Désactive la génération des noms via les méta-caractères (globbing).|
 | set -v          | set -o verbose  | Affiche les lignes lues avant interprétation. | | set -v          | set -o verbose  | Affiche les lignes lues avant interprétation. |
 | set -x          | set -o xtrace   | Affiche la commande avant execution.          | | set -x          | set -o xtrace   | Affiche la commande avant execution.          |
 | set -u          | set -o nounset  | Utilisation d'une variable non définie provoque une erreur. | | set -u          | set -o nounset  | Utilisation d'une variable non définie provoque une erreur. |
-| set -n          | set -o noexec   valider la syntaxe d'un fichier script avant de l'executer. |+| set -n          | set -o noexec   Valider la syntaxe d'un fichier script sans executer les commandes. | 
 + 
 + 
 +Pour afficher les options activées par les arguments positionnels: 
 +<code bash> 
 +echo $- 
 +</code>
  
 ===== bashdb ===== ===== bashdb =====
dev/bash/debogage.1669161853.txt.gz · Dernière modification : 2022/11/23 00:04 de yoann