Guide Bash du débutant - Index général des HOWTOs et mini ...
Guide Bash du débutant - Index général des HOWTOs et mini ...
Guide Bash du débutant - Index général des HOWTOs et mini ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
Le type de Shell pour lequel vous avez écrit le script peut ne pas être celui par défaut de votre<br />
système, alors les comman<strong>des</strong> peuvent ne pas être interprétées par un Shell inadéquat.<br />
La première ligne <strong>du</strong> script définit le Shell à lancer. Les 2 premiers caractères de la première ligne<br />
devraient être #!, puis suit le chemin vers le Shell qui doit interpréter les comman<strong>des</strong> qui suivent. Les<br />
lignes blanches sont aussi prises en compte, donc ne commencez pas votre script par une ligne vide.<br />
Dans ce guide, tous les scripts commenceront par la ligne<br />
#!/bin/bash<br />
Comme indiqué auparavant, ceci implique que le programme <strong>Bash</strong> doit se trouver dans /bin.<br />
2.2. Ajout de commentaires<br />
Vous devriez vous rappeler que vous ne serez peut-être pas la seule personne à lire votre code.<br />
Beaucoup d'utilisateurs <strong>et</strong> d'ad<strong>mini</strong>strateurs système lancent <strong>des</strong> scripts qui ont été écrits par<br />
d'autres. Si ils veulent voir comment vous avez fait, les commentaires sont utiles pour éclairer le<br />
lecteur.<br />
Les commentaires vous rendent aussi la vie plus facile. Par exemple vous avez lu beaucoup de pages<br />
man pour obtenir de certaines comman<strong>des</strong> de votre script un résultat donné. Vous ne vous<br />
souviendrez plus de ce qu'il fait après quelques semaines, à moins d'avoir commenté ce que vous<br />
avez fait, comment <strong>et</strong> pourquoi.<br />
Prenez en exemple script1.sh <strong>et</strong> copiez le sur commented-script1.sh, que vous éditez de sorte que les<br />
commentaires réflètent ce que le script fait. Tout ce qui apparaît après le # sur une ligne est ignoré<br />
par le Shell <strong>et</strong> n'apparaît qu'à l'édition.<br />
#!/bin/bash<br />
# Ce script efface le terminal, affiche un message d'accueil <strong>et</strong> donne <strong>des</strong> informations<br />
# sur les utilisateurs connectés. Les 2 exemples de variables sont définis <strong>et</strong> affichés.<br />
clear # efface le terminal<br />
echo "Le script démarre."<br />
echo "Salut, $USER !" # le signe dollar est employé pour obtenir le contenu d'une variable<br />
echo<br />
echo "Je vais maintenant vous afficher une liste <strong>des</strong> utilisateurs connectés :"<br />
echo<br />
w # montre qui est connecté<br />
echo # <strong>et</strong> ce qu'ils font<br />
echo "Je définis 2 variables maintenant."<br />
COLOUR="noir" # définit une variable locale Shell<br />
VALUE="9" # définit une variable locale Shell<br />
echo "Ceci est une chaîne : $COLOUR" # affiche le contenu de la variable<br />
echo "Et ceci est un nombre : $VALUE" # affiche le contenu de la variable<br />
echo<br />
echo "Je vous redonne la main maintenant."<br />
echo<br />
Dans un script correct, les premières lignes sont habituellement <strong>des</strong> commentaires sur son but. Puis<br />
chaque portion importante de code devrait être commentée autant que la clarté le demande. Les<br />
scripts d'init Linux, par exemple, dans le répertoire init.d sont <strong>général</strong>ement bien documentés<br />
puisque ils doivent être lisibles <strong>et</strong> éditables par quiconque utilise Linux.<br />
3. Débugger (NdT : corriger) les scripts <strong>Bash</strong><br />
3.1. Débugger le script globalement<br />
Quand les choses ne vont pas comme atten<strong>du</strong>es, vous devez déterminer qu'est-ce qui provoque c<strong>et</strong>te<br />
situation. <strong>Bash</strong> fournit divers moyens pour débugger. La plus commune est de lancer le sous-Shell<br />
avec l'option -x ce qui fait s'exécuter le script en mode débug. Une trace de chaque commande avec<br />
ses arguments est affichée sur la sortie standard après que la commande ait été interprétée mais avant<br />
son exécution.