28.02.2013 Views

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 ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!