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 |