Académique Documents
Professionnel Documents
Culture Documents
Un script shell permet d'automatiser une série d'opérations. Il se présente sous la forme d'un fichier contenant une
ou plusieurs commandes qui seront exécutées de manière séquentielle.
Voici une liste de départ des concepts à maîtriser pour le scripting Bash :
shebang
variables positionnelles
variables internes
fonctions et programme principal
fin de script
test
conditions
boucles
débogage
~/.bashrc
Références et exemples
1.2. Shebang
Le shebang, représenté par #!, est un en-tête d’un fichier texte qui indique
au système d’exploitation que ce fichier n’est pas un fichier binaire mais un
script (ensemble de commandes) ; sur la même ligne est précisé
l’interpréteur permettant d’exécuter ce script. Pour indiquer au système
qu’il s’agit d’un script qui sera interprété par bash on placera le shebang
sur la première ligne :
TP 1
Résultat
2. Structures conditionnelles
TP 2
Explication
Ce script peut paraître simple à première vue mais certaines choses prêtent à confusion et ont besoin
d'être expliquées en détail.
Tout abord, le `echo -n` permet de laisser le curseur sur la même ligne, ce qui permet à l'utilisateur de
taper la réponse après la question (question d'esthétique).
L'instruction `read` permet d'affecter une valeur ou un caractère à une variable quelconque, en la
demandant à l'utilisateur.
Ensuite vient l'instruction conditionnelle `if`. Elle est suivie d'un « [ » pour délimiter la condition. La
condition doit bien être séparée des crochets par un espace ! Attention, la variable est mise entre
guillemets car dans le cas où la variable est vide, le shell ne retourne pas d'erreur, mais en cas contraire,
l'erreur produite ressemble à :
[: =: unaryoperator expected
1. Boucle for-do
Faire la même chose pour tous les éléments d’une liste. En programmation, on est souvent amené à
faire la même chose pour tous les éléments d’une liste. Dans un shell script, il est bien évidemment
possible de ne pas réécrire dix fois la même chose. On dira que l’on fait une boucle. Dans la boucle
“for-do-done”, la variable prendra successivement les valeurs dans la liste et les commandes à
l’intérieur du “do-done” seront répétées pour chacune de ces valeurs.
TP : 3
Supposons que nous souhaitions créer 10 fichiers .tar.gz factices, en une seule ligne :
for num in 0 1 2 3 4 5 6 7 8 9 ;
do touch fichier$num.tar.gz ;
done