Vous êtes sur la page 1sur 18

La commande test

 La commande: $test
 Le système LINUX permet d’effectuer des conditions de comparaison en
utilisant la commande de test $test.
 Après exécution de la commande $test, on peut savoir sur le résultat
d’exécution. En effet, si la commande s’est correctement exécutée (vrai), le
code prend la valeur 0 (zéro), sinon (c'est-à-dire faux) la valeur sera différent
de 0 (zéro).

 Les types de test disponibles sont en nombre de quatre :


▪ tests sur les caractéristiques des fichiers
▪ tests de comparaison de fichiers
▪ tests sur les valeurs numériques
▪ tests sur les chaînes de caractères alphanumériques.

HAMDAOUI F AU: 2019/2020


La commande test
2

 Test sur les caractéristiques des fichiers :


 La syntaxe dans ce cas :
▪ $test [-option] [fichier] ou [-option fichier]
▪ test -f fichier : Vrai si fichier ordinaire
▪ test -d fichier : Vrai si fichier répertoire
▪ test -r fichier : Vrai si fichier est accessible en lecture
▪ test -w fichier : Vrai si fichier est accessible en écriture.
▪ test -x fichier : Vrai si fichier est exécutable.
▪ test -b fichier : Vrai si fichier spécial (mode bloc)
▪ test -e fichier : Vrai si fichier existe.
▪ test -s fichier : Vrai si fichier existe et non vide.

HAMDAOUI F AU: 2019/2020


La commande test
3

 Exemple:

HAMDAOUI F AU: 2019/2020


La commande test
4

 Test de comparaison de fichiers:


 La syntaxe dans ce cas :
▪ $test [fichier1] [opération] [fichier2] ou [fichier1 opération fichier2]

▪ test fichier1 -ef fichier2 : Vrai si les deux fichiers sont liés
▪ test fichier1 -nt fichier2 : Vrai si fichier1 est plus récent
▪ test fichier1 -ot fichier2 : Vrai si fichier1 est plus ancien

 Exemple:

HAMDAOUI F AU: 2019/2020


La commande test
5

 Test sur les valeurs numériques:


 La syntaxe dans ce cas :
▪ $test valeur1 [opération] valeur2 ou [valeur1 opération valeur2]

▪ test valeur1 -eq valeur2 : Vrai si valeur1=valeur2


▪ test valeur1 -ne valeur2 : Vrai si valeur1 ≠valeur2
▪ test valeur1 -gt valeur2 : Vrai si valeur1>valeur2
▪ test valeur1 -ge valeur2 : Vrai si valeur1 ≥valeur2
▪ test valeur1 -lt valeur2 : Vrai si valeur1<valeur2
▪ test valeur1 -le valeur2 : Vrai si valeur1 ≤valeur2

HAMDAOUI F AU: 2019/2020


La commande test
6

 Exemple:

HAMDAOUI F AU: 2019/2020


La commande test
7

 Test sur les chaînes de caractères:


 La syntaxe dans ce cas :
▪ $test [-option] chaîne ou $test chaîne1 [-option] chaîne2

▪ test -z "chaîne" : Vrai si la longueur de la chaîne est nulle


▪ test -n "chaîne" : Vrai si la longueur de la chaîne est non nulle
▪ test "chaîne1" = "chaîne2" : Vrai si chaîne1 et chaîne2 sont
identiques
▪ test "chaîne1" != "chaîne2" : Vrai si chaîne1 et chaîne2 sont
différentes
▪ test "chaîne" : Vrai si la chaîne est non vide.

HAMDAOUI F AU: 2019/2020


La commande test
8

 Exemple:

HAMDAOUI F AU: 2019/2020


La commande expr
9

 La commande: $expr
 La commande $expr permet l’évaluation des expressions suivant l’opération
souhaitée.

 Cette opération peut être arithmétique, logique, comparative ou de chaîne de


caractères.

 La syntaxe est la suivante :


▪ $expr [arg1] [opération] [arg2]

▪ Arg1 et arg2 sont des variables qui doivent être séparés par des
espaces.
▪ Opération et l’opération à exécuter.

HAMDAOUI F AU: 2019/2020


La commande expr
10

 Opérations arithmétiques :
 Les opérations arithmétiques possibles en utilisant la commande $expr sont
l’addition par +, la soustraction par -, la multiplication par *, la division par / et
le modulo par %.

 NB : L’opérateur de multiplication doit être échappé lorsqu’il est utilisé dans


une expression arithmétique ( \*).

 Exemple:

HAMDAOUI F AU: 2019/2020


La commande expr
11

 Opérations de comparaison mathématique :


 Pour une opération logique, le résultat retourné est 1 si l’opération est vrai, 0
dans le cas où le résultat de l’opération est faux.

 Les opérations de comparaison sont: >, < et le =. Pour le < et >, ils doivent
être procédés par le anti-slash (\< et \>).

 Exemple:

HAMDAOUI F AU: 2019/2020


La commande expr
12

 Opérations de chaîne de caractères :


 On utilise la commande $lenght pour déterminer la taille d’une chaîne de
caractères.

 La commande $index est utilisée pour donner la position d’apparition du


premier caractère dans une sous-chaîne.

 $substr est utilisée pour extraire une sous-chaîne, en spécifiant la position de


départ et la taille.

 Exemple:

HAMDAOUI F AU: 2019/2020


Les conditions composées
13

 Pour les comparaisons complexes, il a y des opérateurs qui peuvent êtres


utilisés.
▪ !°: La négation
▪ -a : Le ET binaire
▪ -o : Le OU binaire
 La comparaison complexe doit être représentée de la manière suivante:
\(condition\).
 Exemple:

HAMDAOUI F AU: 2019/2020


TD
14

 Exercice 1:
 Ecrire une procédure Shell "somme" qui permet de lire deux valeurs saisies
par le clavier et affiche leur somme (read).

 Correction:
#!/bin/bash
echo "Donner le premier nombre"
read a
echo "Donner le deuxième nombre"
read b
c=`expr $a + $b`
echo "La somme : $a + $b = $c"

HAMDAOUI F AU: 2019/2020


TD
15

 Exercice 2:
 Ecrire une procédure Shell "parametre" qui test le nombre de paramètres. Si
le nombre de paramètres passés en argument est nul, elle affiche un
message d’erreur. Si non, elle affiche les paramètres.

 Correction:

#!/bin/bash
test $# -eq 0 && echo " il faut donner au moins un paramètre"
test $# -ne 0 && echo "Les paramètres de cette procédure sont: $* "

HAMDAOUI F AU: 2019/2020


TD
16

 Exercice 3:
 Ecrire une procédure Shell "difference" qui permet d’afficher la différence
entre deux valeurs données en arguments.

 Correction:

#!/bin/bash
c=`expr $1 - $2`
echo "La Différence est : $1 - $2 = $c"

HAMDAOUI F AU: 2019/2020


TD
17

 Exercice 4:
 Ecrire une procédure Shell "recherche" appelable avec un paramètre (type
de paramètre: fichier) et qui affiche en retour si le fichier existe ou non.

 Correction:
#!/bin/bash
test –e $1
test $ ? –eq 0 && echo "le fichier $1 existe "
test $ ? –ne 0 && echo "le fichier n’existe pas "

HAMDAOUI F AU: 2019/2020


TD
18

 Exercice 5:
 Ecrire une procédure Shell "calcul" qui permet d’afficher la somme ou la
différence selon la valeur donnée en paramètre.
 Exemple: Si on a /.calcul 1 + 2 la sortie est: la somme est 3.
Si on a /.calcul 1 - 2 la sortie est: la différence est -1.

 Correction:
#!/bin/bash
test $2 = "+" && echo "la somme est: `expr $1 + $3`"
test $2 = "-" && echo "la différence est: `expr $1 - $3`"

HAMDAOUI F AU: 2019/2020

Vous aimerez peut-être aussi