Debugger un script shell

From Deimos.fr / Bloc Notes Informatique
Jump to: navigation, search

Onreproche souvent aux scripts shell de ne pas avoir de debugger intégré. C'est faux !

Lorsque l'on programme en bash, il y a des options en ligne de commande pour voir ce qui est lu puis exécuter dans un script... Exemple :

Soit le script MyScript.sh :

#!/bin/sh
touch unFichier
if [ -f ./unFichier ]; then
  rm ./unFichier
fi

Si on l'exécute ainsi :

/bin/bash -v -x ./MyScript.sh

On va avoir une sortie comme ça :

#!/bin/sh
touch unFichier
+ touch unFichier
if [ -f ./unFichier ]; then
  rm ./unFichier
fi
+ '['-f ./unFichier ']'
+ rm ./unFichier

Les lignes normales sont les lignes et blocs lus, tandis que celles avec un + devant sont celles exécutées.