Fichier

test test réalisé
-f fichier vrai si fichier est un fichier ordinaire
-d fichier vrai si fichier est un répertoire
-h fichier vrai si fichier est un lien symbolique
-c fichier vrai si fichier est un périphérique caractère
-b fichier vrai si fichier est un périphérique bloc
-p fichier vrai si fichier est un tube nommé (FIFO)
-S fichier vrai si fichier est une socket
-e fichier vrai si fichier existe
-r fichier vrai si fichier peut être lu
-w fichier vrai si fichier peut être modifié
-x fichier vrai si fichier peut être exécuté
-s fichier vrai si fichier existe et n’est pas vide
fichier1 -nt fichier2 vrai si fichier1 est plus récent que fichier2
fichier1 -ot fichier2 vrai si fichier1 est plus ancien que fichier2

Test Spéciaux

test test réalisé
-u fichier vrai si fichier possède le droit SUID
-g fichier vrai si fichier possède le droit GUID
-k fichier vrai si fichier possède le « sticky bit »

Test Chaine de caractère

test test réalisé
-z chaîne vrai si chaîne est de longueur 0 (chaîne non définie)
-n chaîne vrai si chaîne est de longueur supérieure à 0
chaîne1 = chaîne2 vrai si chaîne1 est identique à chaîne2
chaîne1 != chaîne2 vrai si chaîne1 est différente de chaîne2
chaîne1 != chaîne2 vrai si chaîne1 est différente de chaîne2
chaîne1 && chaîne2 chaîne2 est executé si chaîne1 est OK
chaîne1 || chaîne2 chaîne2 est executé si chaîne1 est KO

Test Nombre

test test réalisé
num1 -eq num2 vrai si num1 est égal à num2
num1 -ne num2 vrai si num1 n’est pas égal à num2
num1 -lt num2 vrai si num1 est inférieur à num2
num1 -le num2 vrai si num1 est inférieur ou égal à num2
num1 -gt num2 vrai si num1 est supérieur à num2
num1 -ge num2 vrai si num1 est supérieur ou égal à num2

Test Opérateur logique

test test réalisé
! expression logique vrai si expression logique est fausse
expression logique1 -a expression logique2 vrai si les deux expressions sont vraies
expression logique1 -o expression logique2 vrai si l’une des deux expressions est vraie
  • Savoir si une variable est un nombre
if [ -n "$(echo $var | sed 's/[0-9]//g')" ]; then
    echo 'is not numeric'
else
    echo 'is numeric'
fi


  • Test une varaible alphanum de facon approximative
[[ $var =~ $motif ]] && echo ok || echo ko