Les tests permettent à un script de prendre des décisions selon une condition.
Exemple :
if [[ $age -ge 18 ]]; then
echo "Tu es majeur."
else
echo "Tu es mineur."
fi
Un test renvoie un code de retour :
0 → vrai1 → faux[[ condition ]]
C’est la forme moderne et recommandée pour écrire des tests dans Bash.
Avantages :
test,
[ ])| Opérateur | Signification | Exemple |
|---|---|---|
-eq |
égal à | [[ $x -eq 5 ]] |
-ne |
différent de | [[ $x -ne 5 ]] |
-lt |
plus petit que | [[ $x -lt 10 ]] |
-le |
plus petit ou égal | [[ $x -le 10 ]] |
-gt |
plus grand que | [[ $x -gt 3 ]] |
-ge |
plus grand ou égal | [[ $x -ge 3 ]] |
| Expression | Signification | Exemple équivalent |
|---|---|---|
(( a == b )) |
a égal à b | [[ $a -eq $b ]] |
(( a != b )) |
a différent de b | [[ $a -ne $b ]] |
(( a < b )) |
a plus petit que b | [[ $a -lt $b ]] |
(( a <= b )) |
a plus petit ou égal à b | [[ $a -le $b ]] |
(( a > b )) |
a plus grand que b | [[ $a -gt $b ]] |
(( a >= b )) |
a plus grand ou égal à b | [[ $a -ge $b ]] |
| Test | Signification | Exemple |
|---|---|---|
-z "$var" |
chaîne vide | [[ -z "$nom" ]] |
-n "$var" |
chaîne non vide | [[ -n "$nom" ]] |
"$a" == "$b" |
chaînes identiques | [[ "$a" == "$b" ]] |
"$a" != "$b" |
chaînes différentes | [[ "$a" != "$b" ]] |
| Test | Signification | Exemple |
|---|---|---|
-e fichier |
existe | [[ -e "$f" ]] |
-f fichier |
fichier régulier | [[ -f "$f" ]] |
-d dossier |
dossier | [[ -d "$rep" ]] |
-r fichier |
lisible | [[ -r "$f" ]] |
-w fichier |
modifiable | [[ -w "$f" ]] |
-x fichier |
exécutable | [[ -x "$f" ]] |
| Symbole | Signification | Exemple |
|---|---|---|
&& |
ET logique | [[ $x -gt 0 && $x -lt 10 ]] |
|| |
OU logique | [[ $x -lt 0 || $x -gt 10 ]] |
! |
NON logique | [[ ! -e "$f" ]] |
[[ ... ]] : forme moderne des tests Bash0 si la condition est vraie,
1 sinon&&,
||, !!#/bin/bash
read -p "Nombre : " n
if [[ -z "$n" ]]; then
echo "Aucune valeur"
elif [[ $n -gt 0 ]]; then
echo "Positif"
elif [[ $n -lt 0 ]]; then
echo "Négatif"
else
echo "Zéro"
fi