Test
De Linuxmemo.
test [expr]
test renvoie une valeur 0 (vrai) ou 1 (faux) suivant l'évaluation de l'expression conditionnelle expr.
-b fichier
Vrai si le fichier existe et est spécial bloc.
-c fichier
Vrai si le fichier existe et est spécial caractère.
-d fichier
Vrai si le fichier existe et est un répertoire.
-e fichier
Vrai si le fichier existe.
-f fichier
Vrai si le fichier existe et est un fichier ordinaire.
-g fichier
Vrai si le fichier existe et a son bit Set-GID positionné.
-k fichier
Vrai si le fichier existe et a son bit Sticky positionné.
-L fichier
Vrai si le fichier existe et est un lien symbolique.
-p fichier
Vrai si le fichier existe et est un tube nommé.
-r fichier
Vrai si le fichier existe et est lisible.
-s fichier
Vrai si le fichier existe et a une taille supérieure à zéro.
-S fichier
Vrai si le fichier existe et est une socket.
-t [fd]
Vrai si fd est ouvert sur un terminal. Si fd est omis, la valeur par défaut est 1 (sortie standard).
-u fichier
Vrai si le fichier existe et a son bit Set-UID positionné.
-w fichier
Vrai si le fichier existe et est accessible en écriture.
-x fichier
Vrai si le fichier existe et est exécutable.
-O fichier
Vrai si le fichier existe et appartient à l'UID effectif de l'appelant.
-G fichier
Vrai si le fichier existe et appartient au GID effectif de l'appelant.
fichier1 -nt fichier2
Vrai si fichier1 est plus récent (d'après les dates de modification) que fichier2.
fichier1 -ot fichier2
Vrai si fichier1 est plus ancien que fichier2
fichier1 -ef fichier2
Vrai si fichier1 et fichier2 ont les mêmes numéros de périphérique et d'i-noeud.
-z chaîne
Vrai si la longueur de la chaîne est nulle.
-n chaîne chaîne
Vrai si la longueur de la string n'est pas nulle.
chaîne1 = chaîne2
Vrai si les deux chaînes sont égales.
chaîne1 != chaîne2
Vrai si les deux chaînes sont différentes.
! expr
Vrai si expr est fausse.
expr1 -a expr2
Vrai si expr1 et expr2 sont toutes les deux vraies.
expr1 -o expr2
Vrai si expr1 ou expr2 est vraie.
arg1 OP arg2
OP est dans la liste -eq, -ne, -lt, -le, -gt, ou -ge. Ces opérateurs arithmétiques renvoient vrai si arg1 est égal, différent, inférieur, inférieur ou égal, supérieur, ou supérieur ou égal à arg2, respectivement. arg1 et arg2 doivent être des entiers (positifs, ou négatifs) ou l'expression spéciale -l chaîne, qui évalue la longueur de la chaîne.
[modifier] comparaison d'entiers
-eq
est égal à
if [ "$a" -eq "$b" ]
-ne
n'est pas égal à
if [ "$a" -ne "$b" ]
-gt
est plus grand que
if ["$a" -gt "$b" ]
-ge
est plus grand ou égal à
if [ "$a" -ge "$b" ]
-lt
est plus petit que
if [ "$a" -lt "$b" ]
-le
est plus petit ou égal à
if [ "$a" -le "$b" ]
<
est plus petit que (à l'intérieur de parenthèses doubles)
[(("$a" < "$b"))
<=
est inférieur ou égal à (dans des doubles-parenthèses)
(("$a"< "$b"))
>
est plus grand que (à l'intérieur de parenthèses doubles)
(("$a" > "$b"))
>=
est plus grand ou égal à (à l'intérieur de parenthèses doubles)
(("$a" >= "$b"))
[modifier] comparaison de chaînes de caractères
=
est égal à
if [ "$a" = "$b" ]
==
est égal à
if [ "$a" == "$b" ]
!=
n'est pas égal à
if [ "$a" != "$b" ]
Cet opérateur utilise la reconnaissance de motifs à l'intérieur d'expressions en ... .
<
est plus petit que, d'après l'ordre alphabétique ASCII
if [[ "$a" < "$b" ]]
if [ "$a" \< "$b" ]
Notez que, s'il se trouve dans une expression en [ ], « < » doit être précédé d'un caractère d'échappement.
>
est plus grand que, d'après l'ordre alphabétique ASCII
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
Notez que « > » a besoin d'être dans une séquence d'échappement s'il se trouve à l'intérieur de [ ].
Voir l'Exemple 26.10, « Le tri bulle : Bubble Sort » pour une application de cet opérateur de comparaison.
-z
la chaîne de caractères est vide, c'est-à-dire qu'elle est de longueur nulle
String= # Zero-length ("null") string variable.
if [ -z "$String" ]
then
echo "\$String is null."
else
echo "\$String is NOT null."
fi # $String is null.
-n
la chaîne de caractères n'est pas vide.