Les tests


A=1
B=2
test $A -eq $B on peut l'écrire sous la forme [ "$a" -eq "$b" ] , on verifie que $A est egale à $B
echo $? renvoie le résultat de la commande ci-dessus, dans ce cas 1 car $A n'est pas égal à $B

La variable $? renvoie le résultat de la commande précédente sous la forme 0 ( c'est vrai  ou la commande s'est bien passé ) ou 1 ( c'est faux ou il ya une erreur )

A=1 ; B=1
[ "$A" -eq "$B" ]
OK="$?"
echo $OK
renvoie le résultat de la commande ci-dessus, dans ce cas 0

Sur les nombres :

"$A" -eq "$B" est égal à
"$A" -ne "$B" n'est pas égal à
"$A" -gt "$B" est plus grand que
"$A" -ge "$B" est plus grand ou égal à
"$A" -lt "$B" est plus petit que
"$A" -le "$B" est plus petit ou égal à

Sur les variables

"$A" == "$B" est égal
"$A" != "$B" est différent
-e "$A"" existe
-n "$A" contient quelque-chose
-z "$A" ne contient rien
-f "$A" est un document
-d "$A" est un repertoire

Il existe d'autre comparateur de fichier

 

#!/bin/bash
A=2
B=3
if [ "$A" -le "$B" ]                               # si $A est inférieur à $B
then echo "$A est plus petit que $B"     # alors on fait ....
fi # fin

Autre exemple :

 

#!/bin/bash
read A
read B
if [ "$A" -le "$B" ] ; then echo "$A est plus petit que $B"
else echo "$A est plus grand que $B"     # Si le premier test n'est pas vrai alors ....
fi

On cumule les tests

#!/bin/bash
read A
read B
C=6
if [ "$A" -le "$B" -a "$C" -eq 6 ] ; then echo "$A est plus petit que $B et C est égale à $C"
fi

Pour afficher le résultat il faut que a soit plus petit que b et que c soit égale a 6 .

Dans une fonction test,  "-a" signifie ET et "-o" signifie OU

Le script suivant s'utilise de cet façon : ./lenomduscrit 1 ( ou 3 ou n'importe quoi )

#!/bin/bash
case $1 in # dans le cas ou $1 est égale à
1) # 1
echo "la variable a est égale à $1"                          # on affiche ....
;; # fin du cas ou $1  est égale à 1
2 | 3 | 5 ) # 2 ou 3 ou 4 ou 5
echo "la variable a supérieure à 1"
;;
*) # dans tout les autres cas
echo " Moi pas comprendre"
;;
esac # fin du test case
exit 0                                                                  # sortie si tout s'est bien passé

La variable $1 correspond à ce que l'on a mis en argument au script.c'est a dire 1 ou 3,  s'il y avait deux arguments alors la variable $2 existerait aussi, et ainsi de suite.

Attention au delà de la dizaine il faut utiliser la commande shift.