Voici un tableau des opérateurs que l'on peut utiliser dans les conditions en bash :

Opérateur Description
opérateurs logiques
[ ] && [ ]  et
[ ] || [ ]  ou
[ ! toto ]  différent de toto
[ toto -a titi ]  et = and
[ toto -o titi ]  ou = or
opérateurs sur les chaines de caractères
=  sont égaux
!=  sont différents
-z  est vide (z pour zero)
-n  non vide (n pour not zero)
opérateurs sur les chiffres
-eq  égal (equal)
-ne  pas égal (not equal)
-gt  plus grand
-ge  plus grand ou égal
-lt  plus petit
-le  plus petit ou égal
opérateur sur les fichiers
-b  fichier existe et est un fichier de blocs spéciaux
-c  fichier existe et est un fichier de caractères spéciaux
-d  fichier existe et est un répertoire
-e  fichier existe quelque soit le type (node, répertoire, socket)
-f  fichier existe et est un fichier 'normal' (pas un répertoire, pas un périphérique)
-G  fichier existe et a le même groupe que l'utilisateur qui exécute la commande
-h  fichier existe et est un lien symbolique (ln -s) 
-g  fichier existe et si l'indicateur set-group-id est activé (sgid)
-k  fichier existe et a un drapeau sticky bit activé

-L

 fichier existe et est un lien symbolique (ln -s), comme -h
-O  fichier existe et appartient à l'utilisateur qui exécute la commande
-p  fichier existe et est un pipe
-r  fichier existe et est lisible
-S  fichier existe et est un socket
-s  fichier existe et a une taille non nulle
-u  fichier existe et si l'indicateur set-user-id est activé (suid)
-w  fichier existe et est modifiable (droit d'écriture)
-x  fichier existe et est exécutable

 

Les différentes syntaxe :

syntaxe description utilisation
if ( <commande> )  Sous-shell exécuté dans un sous-processus  Lorsque les commandes affectent le shell ou l’environnement actuel
Les modifications ne sont pas conservées lorsque le sous-shell se termine
if (( <commande> ))  Bash extension  A utiliser pour les opérations arithmétiques et la manipulation de variables de style C
if [  <commande> ]  builtin POSIX, alias pour test <commands>.  Comparer des nombres et vérifier si un fichier existe
if [[ <commande> ]]  Extension Bash, une version avancée des crochets simples.  Chaîne correspondant à un motif joker