Aperçu
La commande test évalue l'expression donnée et renvoie un code de sortie de 0 si l'expression est vraie, et 1 si elle est fausse. Elle est principalement utilisée pour l'exécution conditionnelle dans les scripts shell, comme dans les instructions `if` et `while`. La commande `[` est une autre forme de la commande `test`, et `[[` offre des fonctionnalités étendues dans Bash/Ksh/Zsh.
Fonctionnalités principales
- Vérification du type et des attributs de fichier
- Comparaison de valeurs de chaînes
- Comparaison de valeurs entières
- Opérations logiques (ET, OU, NON)
Options principales
La commande test utilise divers opérateurs unaires et binaires pour évaluer les expressions conditionnelles.
Vérification des attributs de fichier
Comparaison de chaînes
Comparaison d'entiers
Opérateurs logiques
Commande générée :
Essayez de combiner les commandes.
Description:
`test` Exécute la commande.
Essayez d'exécuter virtuellement les commandes avec l'IA en combinant les options ci-dessus.
Exemples d'utilisation
Exemples d'évaluation d'expressions conditionnelles utilisant la commande test.
Vérification de l'existence d'un fichier
if test -e /etc/passwd; then echo "Le fichier /etc/passwd existe."; fi
Vérifie si le fichier `/etc/passwd` existe.
Vérification si c'est un répertoire
if test -d /tmp; then echo "/tmp est un répertoire."; fi
Vérifie si `/tmp` est un répertoire.
Comparaison de chaînes
MY_VAR="hello"
if test "$MY_VAR" = "hello"; then echo "La valeur de la variable est hello."; fi
Vérifie si la valeur de la variable `MY_VAR` est égale à 'hello'.
Comparaison d'entiers
COUNT=15
if test "$COUNT" -gt 10; then echo "COUNT est supérieur à 10."; fi
Vérifie si la valeur de la variable `COUNT` est supérieure à 10.
Opération ET logique
touch file.txt
if test -f file.txt -a -s file.txt; then echo "file.txt existe et n'est pas vide."; fi
rm file.txt
Vérifie si `file.txt` existe et n'est pas vide.
Utilisation de `[` à la place de `test`
if [ -f /etc/hosts ]; then echo "Le fichier /etc/hosts existe."; fi
La commande `test` peut être remplacée par `[`. Il faut alors la fermer avec `]`.
Conseils et précautions
Conseils utiles et points à considérer lors de l'utilisation de la commande test.
Conseils principaux
- La commande `[` est identique à la commande `test` et doit être fermée par `]`. `[` et `]` sont traités comme des arguments distincts, donc un espace est obligatoire.
- La commande `[[` est prise en charge uniquement par Bash, Ksh et Zsh, et offre des fonctionnalités plus puissantes (expressions régulières, gestion des espaces, etc.). À l'intérieur de `[[`, il est sûr de ne pas mettre les variables entre guillemets.
- Il est toujours plus sûr d'encadrer les variables avec des guillemets doubles (par exemple, `test "$VAR" = "value"`). Cela évite les erreurs qui peuvent survenir lorsque la variable est vide ou contient des espaces.
- Pour la comparaison d'entiers, utilisez `-eq`, `-ne`, `-gt`, `-lt`, `-ge`, `-le`, et pour la comparaison de chaînes, utilisez `=`, `!=`, `-z`, `-n`. Une utilisation incorrecte peut entraîner des résultats inattendus.