accueil > Environnement & utilitaires > test

test : Évaluation d'expressions conditionnelles

La commande test est utilisée pour construire des instructions conditionnelles dans les scripts shell. Elle évalue diverses expressions conditionnelles, telles que la vérification du type de fichier ou la comparaison de valeurs de chaînes et de nombres, et renvoie vrai (0) ou faux (1). Cette valeur de retour est utilisée dans des structures de contrôle comme les instructions `if`.

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.


Commandes de la même catégorie