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 |