Académique Documents
Professionnel Documents
Culture Documents
d’Exploitation
Chapitre 5
Programmation SHELL
équipe système
1
SHELL
2
SHELL
3
SHELL
4
SHELL
5
SHELL
6
SHELL
7
SHELL
8
Exercice 1
Exemple :
9
Exercice 2
Exemple 1:
Entrez une suite de mots : un deux trois quatre cinq
5
Solution 1:
echo "Entrez une suite de mots "
read suite
echo $suite | wc -w
Exemple 2:
./script un deux trois quatre cinq
5
Solution 2:
echo $ # 10
if
11
Exercice 3
Indice
12
Exercice 4
Exemple :
13
if
14
Opération mathématique
15
Exercice 5
Exemple :
Donnez A : 3
Donner B : 4
Choisir opération : *
3*4=12
16
Les operateurs
Opérateur Rôle
+ Addition
- Soustraction
* Multiplication
/ Division
% Modulo
!= Différent. Affiche 1 si différent, 0 sinon.
= Egal. Affiche 1 si égal, 0 sinon.
< inférieur. Affiche 1 si inférieur, 0 sinon.
> supérieur. Affiche 1 si supérieur, 0 sinon.
<= inférieur ou égal. Affiche 1 si inférieur ou égal, 0 sinon.
>= supérieur ou égal. Affiche 1 si supérieur ou égal, 0 sinon.
17
For do
18
For do
19
case
20
while
21
while
22
SHELL
23
Les test if
fichiers :
if [[ -f fichier ]] si fichier existe et n'est pas un
répertoire
if [[ -d fichier ]] si fichier existe et c'est un répertoire
if [[ -r fichier ]] si monFichier est accessible en lecture
if [[ -w fichier ]] si monFichier est accessible en
écriture
chaînes :
if [[ $word = "coucou" ]]
if [[ $var != "chaîne" ]]
if [[ $var ]] si la variable var n'est pas la chaîne vide 24
seq
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14
15 seq debut increment
do fin
echo $i
seq 3 :
done
1
2
Très pénible ! Pour itérer par exemple 3
250 fois, vous devez saisir tout cela
au clavier ! Heureusement, il y a un « seq -2 1 :
raccourci », la commande seq, qui -2
affiche une séquence de nombres -1
allant de 1 jusqu'au maximum indiqué, 0
par exemple : 1
27
For Mathematics Comparisons use
28
For string Comparisons use
Operator Meaning
29
Exercice 7
5 == 6 if [ 5 -eq 6 ]
1- Addition
5 != 6 if [ 5 -ne 6 ]
2- Soustraction
3- Multiplication 5<6 if [ 5 -lt 6 ]
4- Division
5 <= 6 if [ 5 -le 6 ]
Entrez A : 5>6 if [ 5 -gt 6 ]
Entrez B :
Entrez votre 5 >= 6 if [ 5 -ge 6 ]
choix :
Remarques :
Le choix doit être supérieur ou égale à 1 et inferieur ou
égale à 4
Pas d’opération avec des chiffres inferieur a zéro
30
Correction Exercice 7
echo 1-Addition
echo 2-Soustraction
echo 3-Multiplication echo " donner votre choix"
echo 4-Division read op
echo "entrer A"
read A while [[ $op -le 0 || $op -ge 5 ]]
do
while [[ $A -lt 0 ]] echo "choix incorecte "
do echo "donner votre choix "
echo "entrer read op
A > 0" done
read A
done case $op in
1) pp=+
echo "entrer B" echo $(( $A$pp$B));;
read B 2) pp=-
echo $(( $A$pp$B));;
while [[ $B -le 0 ]] 3) pp=*
do echo $(( $A$pp$B));;
echo "entrer 4) pp=/
B > 0" echo $(( $A$pp$B));;
esac 31
read B
Références
http://www.graoulug.org/documentations/eugen/Shell.html
http://ftp.traduc.org/doc-vf/gazette-linux/html/2005/112/lg112-F.html
http://www.pasteur.fr/recherche/unites/sis/formation/Genomes/shell.ht
ml
http://www.freeos.com/guides/lsst/ch03sec02.html
32