La commande "test"

 La commande 'test' indique le succès ou l'échec par la valeur qu'elle retourne, et permet aux programmes shell de prendre une décision selon le résultat vrai ou faux d'une EXPRESSION ;

cette commande est toujours utilisée à l'intérieur d'une commande de contrôle de condition (if, while, until). La commande 'test' effectue trois types de tests :                   

- teste certaines caractéristiques des fichiers.                  

- compare des chaînes de caractères.                  

- effectue des comparaisons numériques. 

Le caractère crochet ouvert "[" est un synonyme pour test. Lorsqu'on utilise l'alias '[', le dernier argument doit être un crochet fermant ( ] ). Exemple : 

                    $a=2
                   $b=2
                   $[ $a -eq $b ]                             = cette commande teste si $a = $b
                   $test
 $a -eq $b          = cette commande teste si $a = $b

   Exemple : 
                    $if test -r /etc/motd           = si le fichier "motd" est en lecture                   >then
                   >echo "lecture"
                   >fi
                   lecture
                  
$

                   $if [ -d /bin ]
                   >then
                            echo "/bin est un répertoire "
                   >else
                           echo "/ bin n'est pas un répertoire "
                   >fi
                   /bin est un répertoire
                   $

  
 TEST est une commande intrinsèque du Shell, les options sont les suivantes :                    test $x      :        vrai si x est une chaîne non vide

                   test
 -z "$x"        :         vrai si x est une chaîne vide

                   test
 -f $x  :        vrai si x est un fichier ordinaire

                   test -r $x  :        vrai si x est un fichier en lecture

                   test
 -w $x         :         vrai si x est un fichier en écriture

                   test
 -d $x :        vrai si x est un nom de répertoire

                   test
 $x = $y      :         vrai si x et y contiennent des chaînes de caractères                                                        identiques.

                   test $x ! = $y    :         vrai si x et y contiennent des chaînes de caractères                                                        différentes

                   test
 $x -eq $y   :         vrai si x et y contiennent des valeurs numériques                                                    égales
                   

test $x -ne $y   :         vrai si x et y contiennent des valeurs numériques                                                            différentes

                   test $x -gt $y    :         vrai si x supérieur à y

                   test
 $x -lt $y     :         vrai si x inférieur à y

                   test
 $x -ge $y   :         vrai si x supérieur ou égal à y

                   test $x - le $y   :         vrai si x inférieur ou égal à y


Attention: Si l'on n'est pas certain d'avoir initialisé la variable avec laquelle on travaille, il est toujours préférable de la mettre entre "..." sous peine d'avoir le message :                                  

ksh: test: 0403-020 Spécifiez un paramètre pour cette commande et une sortie en erreur du fichier de commandes


  Exemple : 

                                            test "$chain1" = "$chain2" 
 On peut combiner des expressions par les opérateurs -o (OR) et -a (AND) Exemple : 
                    $test -x MACRO1 -a -x MACRO2

 On teste si les fichiers MACRO1 ET MACRO2 sont exécutables 
                    $test "$i" -le 1 -o "$i" -ge 31  

On teste que i est un nombre 31L'opérateur "-a" a précédence sur l'opérateur "-o".On peut forcer la précédence par des parenthèses : 

                    $test  ( "$i" -le 1 -o "$i" -ge 31  ) -a "$j" -ge 12  
 On teste que i est = 31 et puis que j >= 12. 
icon phone
Téléphone/Whatsapp : +33 (0)6 83 84 85 74
icon phone