Les scripts SHELL
Najet ZOUBEIR
Plan
• Définition d’un script
• Création d’un script
• Les variables
• Les instructions alternatives
• Les choix multiples
• Les instructions itératives
2
Définition
• Un script:
• Ensemble de commandes dans un fichier
exécutable
• Peut éventuellement avoir des paramètres
• Création de nouvelles commandes : nom de la
commande=nom du fichier script
3
Création
• Les étapes de création d’un script :
• Éditer le fichier de commandes
• Exp: vi monScript.sh
• Préciser dans la 1e ligne le type du SHELL
• #! /bin/bash
• Le rendre exécutable
• Chmod a+x monScript
• Le lancer
• monScript.sh
• Ou bien ./monScript.sh
• Ou bien sh monScript.sh
4
Les variables (1)
• Variables utilisateur:
• Création par affectation
• Utilisation avec le $
• Manipulation des expressions arithmétiques avec « expr »
– Exp:
C="abc"
N=12
echo "variable C = " $C
echo "variable N = " $N
echo "variable N+1 = " ; expr $N + 1
N=expr $N + 10
echo "variable N apres N=N+10= " $N
5
Les variables (2)
• Variables prédéfinies:
– $1 $2 .... $9 : argument 1, 2 ...9 de la ligne de
commande
– $* ou $@ : tous les arguments (selon la distribution)
– $# : nombre d’arguments
– $0 : nom du script
• Exp : toto xxx yyy zzz
$0 $1 $2 $3
– $$ : numero du processus shell
– $! : numero du dernier processus en arrière plan
– $? : code de retour (valeur renvoyée par exit) vaut 0 (=
True) si terminaison normale
6
Les variables (3)
• Variables d’environnement:
• Variables prédéfinies qui servent à configurer
l’utilisation du Shell et des outils Unix
• Variables usuelles:
• PATH : chemins d'accès vers des répertoires contenant
les exécutables, séparés par des points-virgules.
• HOME, PWD : Chemin d'accès de votre répertoire
d'accueil (Home) ou courant (PWD)
• USER : identifiant de l'utilisateur connecté
• SHELL : chemin d'accès du programme shell
7
Instructions alternatives (1)
• Syntaxe :
if commande
then
commandes-a-faire-si-vrai
else
commandes-a-faire-si-faux
fi
• Commande peut être une expression
booléenne ou bien le résultat de l’exécution
d’une commande (0)si aucun problème)
8
Instructions alternatives (2)
• Exp :
if [ $# == 0 ]
then echo "Il n’y a pas de paramètres "
Elif [ $#==1 ]
then echo "Il y a un seul paramètre "
else
echo "il y a $# paramètres"
fi
9
Instructions alternatives (3)
• Opérateurs de test :
Test Comparaison
-lt less than
-le lower or equal
-eq equal
-ge greater or equal
-gt greater than
-ne not equal
10
Instructions alternatives (4)
• Tests d’attributs de fichiers :
Opérateur Vrai si..
[ -d fichier ] fichier existe et est un répertoire
[ -e fichier ] fichier existe
[ -f fichier ] fichier existe et est régulier
[ -r fichier ] permission en lecture
[ -s fichier ] fichier existe et est non-vide
[ -w fichier ] permission en écriture
[ -x fichier ] permission en exécution
11
Choix dans une liste
• Syntaxe:
case mot in
exp1) commandes1 ;;
exp2) commandes2 ;;
...
esac
• Exp :
case $1 in
Sun) jour=Dimanche;;
...
Sat) jour=Samedi;;
esac
12
Instructions itératives (1)
• Boucle for :
• Syntaxe :
for i in liste ; do commande ; done
• Exp : un script dont les paramètres sont des noms
de fichiers, qui affiche leurs contenus :
for i in $*
do
echo "fichier $i :"
cat $i
done
13
Instructions itératives (2)
• Boucle while :
• Syntaxe :
while commande
do
commande-à-faire-tant-que-vrai
done
14
Instructions itératives (3)
• Boucle until :
• Syntaxe :
until commande
do
commande-à-faire-tant-que-faux
done
15