Les tests en Bash shell permettent de faire des vérifications logiques ou arithmétiques (fichiers, chaînes, entiers, etc.). Voici un résumé des différents types de tests que tu peux effectuer avec la commande test, ou sa forme équivalente entre crochets [ ... ].
if [ CONDITION ]; then
# commandes si vrai
else
# commandes si faux
fi
Important : toujours laisser des espaces autour des crochets [ et ].
Types de tests
Tests de fichiers
Test
Signification
[ -e fichier ]
Le fichier existe (quelque soit son type)
[ -f fichier ]
Le fichier est un fichier ordinaire
[ -d dossier ]
C’est un dossier
[ -r fichier ]
Le fichier est lisible
[ -w fichier ]
Le fichier est modifiable
[ -x fichier ]
Le fichier est exécutable
Tests de chaînes de caractères
Test
Signification
[ "$str1" = "$str2" ]
Les chaînes sont égales
[ "$str1" != "$str2" ]
Les chaînes sont différentes
[ -z "$str" ]
La chaîne est vide
[ -n "$str" ]
La chaîne n’est pas vide
Tests numériques
Test
Signification
[ "$a" -eq "$b" ]
$a est égal à $b
[ "$a" -ne "$b" ]
$a est différent de $b
[ "$a" -lt "$b" ]
$a est inférieur à $b
[ "$a" -le "$b" ]
$a est inférieur ou égal à $b
[ "$a" -gt "$b" ]
$a est supérieur à $b
[ "$a" -ge "$b" ]
$a est supérieur ou égal à $b
Combinaisons logiques
ET logique : &&
if [ $a -gt 0 ] && [ $a -lt 10 ]; then echo "Entre 1 et 9" fi
OU logique : ||
if [ $a -lt 0 ] || [ $a -gt 100 ]; then echo "Hors de l'intervalle" fi
Négation : !
if [ ! -f fichier.txt ]; then echo "Fichier absent" fi
🔸 Exemple complet
#!/bin/bash
fichier="mon_script.sh"
if [ -e "$fichier" ]; then echo "Le fichier existe."
if [ -x "$fichier" ]; then echo "Le fichier est exécutable." else echo "Le fichier n'est pas exécutable." fi else echo "Le fichier n'existe pas." fi