0% ont trouvé ce document utile (0 vote)
14 vues22 pages

10 Les Scripts

Transféré par

Heisenbug
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
14 vues22 pages

10 Les Scripts

Transféré par

Heisenbug
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les scripts

Linux
Linux 11 CPI
CPI 2018/2019
2018/2019

-1-
Les scripts

-2-
Les scripts

La commande test ou [ ] permet d’effectuer des


tests sur :
● les fichiers et les répertoires ;
● les chaînes de caractères ;
● les valeurs numériques ;

Syntaxe: test option paramètre


ou [ option paramètre ]

-3-
Les scripts

-4-
Les scripts
Exemple 01 (-f, -d)
-f : vrai si c’est un fichier
-d : vrai si c’est un répertoire
user1@PC:~$ test -f .profile && echo "c'est un fichier"
c'est un fichier
user1@PC:~$ [ -f .profile] && echo "c'est un fichier"
bash: [: « ] » manquant
user1@PC:~$ [ -f .profile ] && echo "c'est un fichier"
c'est un fichier
user1@PC:~$ test -d Bureau/&& echo "c'est un répertoire"
c'est un répertoire
user1@PC:~$ [ -d Bureau/ ] && echo "c'est un répertoire"
c'est un répertoire

-5-
Les scripts
Exemple 02 (-e, -s)
-e : vrai si le fichier ou répertoire existe
-s : vrai si le fichier ou le répertoire n’est pas vide
user1@PC:~$ [ -e /etc/ ] && echo "il existe"
il existe
user1@PC:~$ [ -e /etc/profile ] && echo "il existe"
il existe
user1@PC:~$ [ -s /etc/ ] && echo "il n'est pas vide"
il n'est pas vide
user1@PC:~$ [ -s /etc/profile ] && echo "il n'est pas vide"
il n'est pas vide

-6-
Les scripts
Exemple 03 (-r, -w, -x, -u, -g)
-r; -w; -x : pour tester lecture; écriture; exécution
-u; g: pour tester les bits SUID ; GUID
user1@PC:~$ ls -l /etc/passwd
-rw-r--r-- 1 root root 2597 30 21:27 /etc/passwd
user1@PC:~$ test -w /etc/passwd || echo "$USER n'a
pas les droits w"
user1 n'a pas les droits w
user1@PC:~$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 59640 25 2018 /usr/bin/passwd
user1@PC:~$ test -u /usr/bin/passwd && echo "le bit
SUID est positionné"
le bit SUID est positionné

-7-
Les scripts

-8-
Les scripts
Exemple 01 (=,!=)
= : vrai si les deux chaînes sont identiques
!= : vrai si les deux chaînes sont différentes
user1@PC:~$ [ $$=`pgrep bash -u $USER` ] && echo "ils
sont identiques"
ils sont identiques
user1@PC:~$ [ $$=$! ] && echo "ils sont différents"
ils sont différents

-9-
Les scripts
Exemple 02 (-z,-n)
-z : vrai si chaîne est vide
-n : vrai si la chaîne n’est pas vide
user1@PC:~$ test -z "" && echo "chaîne est vide"
chaîne est vide
user1@PC:~$ test -n "aaa" && echo "chaîne n'est pas
vide"
chaîne n'est pas vide
user1@PC:~$ test "aaa" && echo "chaîne n'est pas vide"
chaîne n'est pas vide

- 10 -
Les scripts

- 11 -
Les scripts
Exemple 01 (-eq, -ne ; -gt, -ge ; -lt, -le)
-eq : signifier = -ne : signifier ≠
-gt : signifier > -ge : signifier ≥
-lt : signifier < -le : signifier ≤
user1@PC:~$ [ 1 -eq 1 ] && echo "test ="
test =
user1@PC:~$ [ 2 -ne 1 ] && echo "test !="
test !=
user1@PC:~$ [ 2 -gt 1 ] && echo "test >"
test >
user1@PC:~$ [ 1 -ge 1 ] && echo "test >="
test >=
user1@PC:~$ [ 1 -lt 2 ] && echo "test <"
test <
user1@PC:~$ [ 2 -le 2 ] && echo "test <="
test <=
- 12 -
Les scripts

- 13 -
Les scripts
Exemple 01 (-a, -o; !)
-a : signifier AND, ET logique
-o : signifier OR, OU logique
! : signifier NOT, NON logique
user1@PC:~$ [ -r /etc/passwd -a -w Bureau/ ] && echo
"teste combinés"
teste combinés
user1@PC:~$ [ -r /etc/passwd -o -w Bureau/ ] && echo
"teste combinés"
teste combinés
user1@PC:~$ [ ! -x /etc/passwd ] && echo "teste
combinés"
teste combinés

- 14 -
Les scripts

- 15 -
Les scripts

La structure if
Syntaxe :
if condition
then
commande
...
[ else
commande
... ]
fi

- 16 -
Les scripts
Exemple (if ... then .…)
user1@PC:~$ cat fich
linux est top
user1@PC:~$ cat exemple_if_then
#!/bin/bash
if [ -f $1 ]
then
echo "Le contenu du fichier $1 est:" `cat $1`
else
echo "Erreur: $1"
fi
user1@PC:~$ ./exemple_if_then fich
Le contenu du fichier fich est: linux est top

- 17 -
Les scripts
La structure case
Syntaxe :
case variable in
pattern1) commande
... ;;
[ pattern2) commande
... ;; ]
esac

- 18 -
Les scripts
Exemple (case... )
user1@PC:~$ cat exemple_case
#!/bin/bash
case $0 in
.*) echo "nom commance par .";;
e*) echo "nom commance par e";;
esac
user1@PC:~$ ./exemple_case
nom commance par .

- 19 -
Les scripts
La structure for
Syntaxe :
for variable in liste
do
commande
...
done

- 20 -
Les scripts
Exemple (for)
user1@PC:~$ ls Bureau/
fich1 fich2 mon_Mkdir
user1@PC:~$ cat exemple_for
#!/bin/bash
for obj in Bureau/*
do
mv $obj $1
done
user1@PC:~$ ./exemple_for Documents/
user1@PC:~$ ls Bureau/
user1@PC:~$ ls Documents/
fich1 fich2 mon_Mkdir

- 21 -
Les scripts

Linux
Linux 11 CPI
CPI 2018/2019
2018/2019

- 22 -

Vous aimerez peut-être aussi