Qu'est-Ce Qu'un Script ?: Initiation À La Programmation Shell
Qu'est-Ce Qu'un Script ?: Initiation À La Programmation Shell
Les variables
Dans un script on peut dfinir des variables. Ces variables ne peuvent
contenir que des chanes alphanumriques.
Un nom de variable doit commencer par une lettre et peut tre constitu de
lettres, de chiffres et "_" (underscore).
Exemples: var_1
v2 ma_variable
Affectation d'une variable
Sous sh,bash ou ksh, pour affecter une chaine alphanumrique valeur une
variable var il suffit d'crire:
var=valeur
Sept 2015
2
Si la chaine valeur contient des caractres spciaux(1) il faut l'enfermer entre
deux """ (guillemets doubles).
Exemples:
question="etre ou ne pas etre"
var2=12
(ce n'est pas une valeur numrique!!
il s'agit du caractre "1" suivi du caractre "2")
var3=
(affectation d'une chaine vide )
var4="cat fic1 fic2 > fic3"
Une variable dfinie dans un script n'est reconnue qu' l'intrieur du script.
Pour la rendre accessible tous les niveaux infrieurs il faut utiliser la
commande export.
export var
Cette commande rend la variable var connue tous les niveaux infrieurs.
Les variables
prdfinies
Il existe des variables prdfinies dont les nom sont bass sur des caractres
particuliers (? #
$
!
)qui ont une signification
particulire.
?
0 1 2 3
tab
2 Consulter les rfrences pour savoir les tats renvoys par les diffrentes commandes.
3 Par exemple si le fichier administrateurs n'existe pas ou est inaccessible.
4 Sous forme de chaine de caractres
Sept 2015
3
etc
Commandes
Toutes les commandes Unix sont utilisables dans un script.
liste_de_commandes
Droulement de
l'excution du script
Normalement les commandes d'un script sont excutes en squence dans
l'ordre o elles sont crites. Cependant il est possible d'avoir des excutions
conditionnelles et des boucles.
Boucle for
Slection case
case $variable in
val1) liste_de_commandes_1;;
val2) liste_de_commandes_2;;
valn) liste_de_commandes_n;;
*) liste_de_commandes_x;;
esac
Si variable a l'une des valeurs val1 valn , la liste de commandes
correspondante est excute.
Sinon liste_de_commandes_xest excute.
Exemple:
case $#
0)
1)
2)
*)
in
echo
echo
echo
echo
Sept 2015
"Il
"Il
"Il
"Il
n'y
y a
y a
y a
a pas d'argument";;
un argument";;
deux arguments";;
plus de deux arguments";;
4
esac
excution conditionnelle if
if liste_de_commandes_1
then
liste_de_commandes_2
else
liste_de_commandes_3
fi
liste_de_commandes_1 est d'abord excute.
Si son tat de retour est 0, liste_de_commandes_2 est excute, sinon
liste_de_commandes_3 est excute.
Exemple:
if mkdir monrep
then
echo "le rpertoire monrep est cr"
else
echo "la cration de monrep a chou"
fi
test -f fic
eq
ne
gt
test n1 - ge
lt
le
>
Renvoie 0 si l'entier n1 est l'entier n2
<
n2
[ options commande ]
NOTE
Sept 2015
5
if liste_de_commandes_1
then
liste_de_commandes_01
elif liste_de_commandes_2
then
liste_de_commandes_02
elif liste_de_commandes_n
then
liste_de_commandes_0n
else
liste_de_commandes_x
fi
Exemple:
if [ $# =
then
echo
elif [ $#
then
echo
elif [ $#
then
echo
else
echo
fi
Boucle while
"0" ]
"Il n'y a pas d'argument"
= "1" ]
"Il y a un argument"
= "2" ]
"Il y a deux arguments"
"Il y a plus de deux arguments"
while liste_de_commandes_1
do
liste_de_commandes_2
done
Tant que l'excution de liste_de_commandes_1 a un tat de retour d'excution
0, liste_de_commandes_2 est excute.
Attention
Boucle until
Attention
ce
que
l'excution
de
Quelques commandes
utiles dans les scripts
expr expression
getopts
Sept 2015
Sept 2015