Comprendre les bases de la commande test
La commande test
sous Linux est un outil essentiel pour évaluer des conditions dans les scripts shell. Elle vous permet de vérifier les propriétés des fichiers, de comparer des chaînes de caractères, d'évaluer des valeurs numériques, et bien plus encore. Lorsque la condition testée est vraie, test
renvoie un code de sortie égal à zéro ; sinon, il renvoie un code de sortie non nul.
Commençons par les bases. Tout d'abord, accédez au répertoire de votre projet :
cd ~/project
La commande test
peut être écrite de deux manières :
- En utilisant le mot
test
suivi de la condition
- En utilisant des crochets carrés
[ ]
autour de la condition
Essayons les deux méthodes pour vérifier si un répertoire existe :
## Méthode 1 : Utilisation du mot 'test'
test -d ~/project && echo "Le répertoire du projet existe."
## Méthode 2 : Utilisation de crochets carrés
[ -d ~/project ] && echo "Le répertoire du projet existe."
Vous devriez voir la sortie suivante pour les deux commandes :
Le répertoire du projet existe.
L'option -d
vérifie si un répertoire existe. L'opérateur &&
est utilisé pour exécuter la commande echo
uniquement si la condition de test est vraie.
Voici quelques options de test de fichiers courantes :
-d
fichier : Vrai si le fichier existe et est un répertoire
-e
fichier : Vrai si le fichier existe
-f
fichier : Vrai si le fichier existe et est un fichier ordinaire
-r
fichier : Vrai si le fichier existe et est lisible
-w
fichier : Vrai si le fichier existe et est écrivable
-x
fichier : Vrai si le fichier existe et est exécutable
-s
fichier : Vrai si le fichier existe et a une taille supérieure à zéro
Créons un fichier de test et vérifions ses propriétés :
## Créer un fichier de test
echo "Hello, Linux condition testing!" > test_file.txt
## Vérifier si le fichier existe
test -e test_file.txt && echo "Le fichier existe."
## Vérifier si le fichier est lisible
[ -r test_file.txt ] && echo "Le fichier est lisible."
## Vérifier si le fichier est vide
[ -s test_file.txt ] && echo "Le fichier n'est pas vide."
Ces commandes devraient produire la sortie suivante :
Le fichier existe.
Le fichier est lisible.
Le fichier n'est pas vide.
Maintenant, créons un simple script shell qui utilise la commande test
pour vérifier si un fichier existe, et s'il n'existe pas, le créer :
## Créer un fichier de script
cat > check_file.sh << 'EOF'
#!/bin/bash
FILENAME="status.txt"
if [ ! -e "$FILENAME" ]; then
echo "Le fichier $FILENAME n'existe pas. Je le crée maintenant."
echo "This is a status file." > "$FILENAME"
else
echo "Le fichier $FILENAME existe déjà."
fi
## Afficher le contenu du fichier
echo "Contenu de $FILENAME :"
cat "$FILENAME"
EOF
## Rendre le script exécutable
chmod +x check_file.sh
## Exécuter le script
./check_file.sh
Lorsque vous exécutez le script, vous devriez voir une sortie similaire à :
Le fichier status.txt n'existe pas. Je le crée maintenant.
Contenu de status.txt :
This is a status file.
Si vous exécutez le script à nouveau, vous verrez :
Le fichier status.txt existe déjà.
Contenu de status.txt :
This is a status file.
Cela démontre comment utiliser la commande test
pour vérifier l'existence d'un fichier et prendre des actions différentes en fonction du résultat.