Académique Documents
Professionnel Documents
Culture Documents
se
ue
l
Tr
Fa
4 Stéphane Lavirotte 17/10/2016
Programmation Shell
Environnement Informatique 1
Faire un Script Shell
Un script Shell c’est quoi ?
Le regroupement de commandes dans un fichier
1. Le nom du programme
exécutant les commandes
2. Le chemin de recherche des
commandes
3. Un commentaire 0% 0% 0% 0%
h
ire
e
...
..
as
bl
é.
de
ta
r ia
/b
ex
en
L’affichage du texte /bin/bash
in
va
ch
e
5.
/b
m
ne
er
m
m
e
ch
co
xt
ra
d’
re
te
Un
og
on
de
du
pr
i
at
in
du
e
ct
ag
em
ffe
m
ch
ch
no
L’a
ffi
Le
L’a
Le
ns
...
..
io
p.
de
i ss
ns
an
introuvable »
rm
sa
m
pe
m
e
ut
co
de
éc
«
x
ur
ur
’e
re
ts
re
er
rip
er
ne
sc
ne
iu
iu
on
J’ a
J’ a
M
..
r ie
...
À spécifier les
p.
...
4.
ch
ns
À
n
se
io
s
de
i ss
er
hi
e
rm
permissions des
bl
fic
pe
m
es
e
s
ns
rl
le
l ’e
ve
er
programmes
ou
ifi
r
te
éc
tr
lis
sp
À
À
À
12 Stéphane Lavirotte 17/10/2016
Quelle(s) est (sont) l’(les) initialisation(s)
incorrecte(s) d’une variable ?
1. a="abc" 100%
2. b=$(echo "abc")
3. a=$b
4. $a=$b
5. Toutes incorrectes
6. Aucune incorrecte
0% 0% 0% 0% 0%
es
e
b
")
"
ct
bc
=$
bc
ct
a=
rre
"a
$a
rre
"a
a=
co
co
ho
in
in
ec
ne
es
$(
cu
ut
b=
Au
To
13 Stéphane Lavirotte 17/10/2016
Nommage des variables
En général les noms de variable de scripts Shell
sont en minuscule
mais j’ai le droit d’utiliser des majuscules si je ne redéfinis pas un nom
de variable d’environnement existant
utilisent de préférence des caractères alphabétiques
mais je peux tout de même utiliser des chiffres et le caractère _
1. Affiche: u1
2. Affiche: 101
3. Affiche 20
4. Affiche 1
0% 0% 0% 0%
5. Affiche: 21
1
1
20
1
01
:u
:2
he
:1
he
he
he
fic
he
fic
fic
fic
Af
fic
Af
Af
Af
Af
..
..
..
...
d.
d.
d.
r"
Une erreur: il n’existe pas de
s
4.
pa
pa
pa
ie
ss
te
te
te
do
xis
xis
xis
dossier "Mes Documents" le
’e
’e
’e
ln
ln
ln
ns
:i
:i
:i
da
ur
ur
ur
er
re
re
re
ac
er
er
er
pl
e
Un
Un
Un
e
M
Mais aussi
$? : affiche le code d’erreur d’exécution de la commande
précédente
1. #2*
2. 5212345
3. 5 two mon_script.sh 0% 0% 0% 0%
e
*
iv
t.s
o
2
f
tw
ip
#
ur
5 two one two three four five
cr
2
fo
5.
_s
1
fiv
e
2
on
re
ur
5
th
fo
o
o
e
tw
tw
re
th
5
e
on
o
tw
o
tw
e
on
5
18 Stéphane Lavirotte 17/10/2016
Exemple de script Shell. Où est l’erreur?
Soit le script:
1. #!/bin/bash
100%
2. read –p "Entrez un mot: " mot
3. echo "Le premier paramètre de mon
script est: $1"
4. echo "Le mot saisi au clavier
est: " mot
5. echo –n "Nous sommes le " $(date)
1. Ligne 1
2. Ligne 2
3. Ligne 3
4. Ligne 4 0% 0% 0% 0%
5. Ligne 5
1
5
ne
ne
ne
ne
ne
Lig
Lig
Lig
Lig
Lig
19 Stéphane Lavirotte 17/10/2016
Quel est le résultat obtenu ?
Soit la suite de commandes
suivantes:
date
100%
lundi 17 octobre 2016,16:44:02 (UTC+0200)
date="mon anniv"
var=$(date)
1. var
2. lundi 17 octobre 2016, …
0% 0% 0% 0%
3. mon anniv
4. date
r
te
…
de
va
ni
da
6,
vi
an
01
ne
on
Une ligne vide
e2
lig
5.
m
br
e
Un
to
oc
7
i1
nd
lu
file.txt
0 0
1 1
Commande Commande
2 2
Comportement normal de toute commande commande < file.txt
0 file.txt
0
1 1
Commande Commande
2 2
file.txt
...
..
.tx
.tx
t
d
e2
e1
tx
J’obtiens une erreur quand
an
4.
1.
fil
fil
qu
ile
ns
ns
f
ur
da
da
ns
re
j’exécute cette commande da
ts
es
er
ta
é
es
e
nn
ul
un
é
és
nn
do
ns
sr
do
ie
le
le
bt
s
rit
Lit
le
J’ o
Ec
Lit
0% 0% 0% 0%
t
t
t
tx
tx
tx
tx
ca
e.
e.
e.
e.
t
tx
fil
fil
fil
fil
e.
>
t
>
<
ca
fil
t
t
t
ca
ca
ca
>
>
<
0 0
1 1
Commande Commande
2 2
commande 1>&2 commande 2>&1
0 0
1 |
1
Commande Commande
1 2
2 2
commande1 | commande2
et l’exécution suivante:
mon_script.sh > file.txt
1. Message 1
2. Message 1 Message 2 0% 0% 0%
3. Message 2
1
2
2
ne
ge
ge
ge
Ri
Rien sa
sa
sa
4.
es
es
es
M
M
M
1
ge
sa
es
M
et l’exécution suivante:
mon_script.sh 2>&1 > file.txt
1. Message 1
2. Message 1 Message 2 0% 0% 0%
3. Message 2
1
2
2
ne
ge
ge
ge
Ri
Rien sa
sa
sa
4.
es
es
es
M
M
M
1
ge
sa
es
M
et l’exécution de commandes
suivantes:
cat /etc/passwd | cut –d ":" –f 6 | sort |
uniq
h
1
h
/bin/bash /bin/bash
r2
10
as
er
er
as
5.
us
us
/b
10
/b
us
in
e/
e/
in
r1
/b
/b
m
om
e
/bin/bash
us
h
6.
/h
/h
as
/b
2
1
er
er
in
us
us
/b
e/
e/
om
om
/h
/h
29 Stéphane Lavirotte 17/10/2016
Utilisation des variables
Soit les commandes: 2 espaces
var=" Mes Documents"
100%
echo $var | cut –d " " –f 5
1. "Mes Documents"
2. "Mes"
3. "Documents"
4. Une ligne vide 0% 0% 0% 0%
5. Une erreur
"
ur
"
de
"
ts
ts
es
re
vi
en
en
"M
er
ne
m
um
e
cu
lig
Un
oc
Do
e
"D
Un
es
"M
Les Réseaux
Introduction
Internet et Protocoles
Internet et Sécurité