Test (Unix)


Test (Unix)
Page d'aide sur l'homonymie Pour les articles homonymes, voir Test.

test est une commande Unix qui permet de créer des expressions conditionnelles.

Sommaire

Syntaxe

test Expression ou [ Expression ] ou [[ Expression ]]

Exemple : test -f /home/test ou [ -f /home/test ] ou [[ -f /home/test ]]

Description

la commande test évalue l'expression passée en argument. Dans sa seconde forme, chaque crochet ([]) doit obligatoirement être séparé de la condition par un espace. Les fonctions et opérateurs sont traités comme des arguments différents par la commande test. L'expression conditionnelle doit faire référence à une condition dont il est possible de répondre par vrai (true) ou faux (false).

Fonctions

Les fonctions suivantes sont utilisées pour construire l'expression conditionnelle et retournent toutes vrai (true) si la condition est satisfaite :

-b Fichier -- Fichier existe et est un fichier spécial en mode bloc.
-c Fichier -- Fichier existe et est un fichier spécial en mode caractère.
-d Fichier -- Fichier existe et est un répertoire.
-e Fichier -- Fichier existe.
-f Fichier -- Fichier existe et est de type ordinaire.
-g Fichier -- Fichier existe et le bit Set Group ID est actif.
-h Fichier -- Fichier existe et est un lien symbolique.
-k Fichier -- Fichier existe et le sticky bit est actif.
-L Fichier -- Fichier existe et est un lien symbolique (même chose que -h).
-p Fichier -- Fichier existe et est un tube nommé (named pipe, FIFO).
-r Fichier -- Fichier existe et est accessible en lecture.
-s Fichier -- Fichier existe et a une taille non nulle.
-u Fichier -- Fichier existe et le bit Set User ID est actif.
-t Descripteur -- Le descripteur de fichier est ouvert et associé à un terminal.
-w Fichier -- Fichier existe et est spécifié comme étant accessible en écriture.
Toutefois, le fichier ne sera pas accessible en écriture sur un système de fichier en
lecture seule, même si le test indique vrai (true).
-x Fichier -- Fichier existe et est spécifié comme étant exécutable.
Si le fichier spécifié est un répertoire, une valeur de retour vrai (true) signifie que
le processus courant a la permission de parcourir ce répertoire.

Fonctions de chaînes de caractères

-n Chaîne1         -- La longueur de la Chaîne1 n'est pas nulle.
-z Chaîne1         -- La longueur de la Chaîne1 est nulle.
Chaîne1 = Chaîne2  -- Chaîne1 et Chaîne2 sont identiques.
Chaîne1 != Chaîne2 -- Chaîne1 et Chaîne2 sont différentes.
Chaîne1            -- Chaîne1 n'est pas une chaîne de caractères nulle.

Fonctions numériques

Entier1 -eq Entier2 -- Entier1 et Entier2 sont, algébriquement parlant, égaux.
Entier1 -ne Entier2 -- Entier1 n'est pas égal à Entier2.
Entier1 -gt Entier2 -- Entier1 est strictement supérieur à Entier2.
Entier1 -ge Entier2 -- Entier1 est supérieur ou égal à Entier2.
Entier1 -lt Entier2 -- Entier1 est strictement inférieur à Entier2.
Entier1 -le Entier2 -- Entier1 est inférieur ou égal à Entier2.
Fichier1 -nt Fichier2 -- Fichier1 est plus récent que Fichier2.
Fichier1 -ot Fichier2 -- Fichier1 est plus ancien que Fichier2.
Fichier1 -ef Fichier2 -- Fichier1 et Fichier2 pointent vers le même fichier (lien symbolique).

Opérateurs

Toutes les fonctions ci-dessus peuvent être combinées avec les opérateurs suivants :

!  -- Opérateur unaire de la négation
-a -- Opérateur binaire ET
-o -- Opérateur binaire OU (l'opérateur -a est prioritaire sur l'opérateur -o)
\(Expression\) -- Les parenthèses pour effectuer des groupements doivent être échappées par des anti-slash (\).

Codes de retour

La commande test retourne les valeurs suivantes :

0  -- L'expression conditionnelle est vraie (true).
1  -- L'expression conditionnelle est fausse (false).
>1 -- Une erreur s'est produite.

Exemples

Pour tester si un fichier existe et n'est pas vide

 if test -s "$1"
 then
     echo "$1 existe et n'est pas vide."
 fi

Si le fichier spécifié dans le premier argument envoyé au script shell ($1) n'existe pas ou est vide, la commande test va retourner 1 et le script ne va rien afficher. Mais si au contraire le fichier existe et n'est pas vide, alors la commande test va retourner 0 et le script va afficher "Mon Fichier existe et n'est pas vide.".

Note : Il doit y avoir un espace entre l'option -s et le nom du fichier.

Les guillemets autour de $1 permettent de s'assurer que le test fonctionnera même si la valeur de $1 est nulle. Si les guillemets sont retirés et que $1 ne vaut rien, alors la commande test va retourner une erreur du type "test: argument expected.".

Pour vérifier qu'au moins un argument a été envoyé au script shell

 if [ $# -lt 1 ]
 then
     echo "Erreur: il faut au moins un argument.";
     exit 2;
 fi

Cette fois-ci, on utilise la deuxième notation de la commande test (les crochets). Dans le script ci-dessus, $# correspond au nombre d'arguments envoyés sur la ligne de commande. On regarde donc si ce nombre est strictement inférieur (-lt) à 1 et si c'est le cas, on affiche une erreur et on arrête le script en retournant un code d'erreur 2.

Voir aussi



Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Test (Unix) de Wikipédia en français (auteurs)

Regardez d'autres dictionnaires:

  • Test (unix) — test est une commande Unix qui permet de créer des expressions conditionnelles. Sommaire 1 Syntaxe 2 Description 3 Fonctions 3.1 Fonctions de chaînes de caractères …   Wikipédia en Français

  • Test (Unix) — test is a Unix command that evaluates conditional expressions.yntax test expression or [ expression ] DescriptionThe test command evaluates the expression parameter. In the second form of the command, the [ ] (brackets) must be surrounded by… …   Wikipedia

  • Test (UNIX) — test  файла и сравнения значений. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости вычисления выражения expr. Выражения могут быть как унарными, так и бинарными. Унарные выражения часто используются для проверки статуса файла. Также… …   Википедия

  • test — test  UNIX утилита для проверки типа файла и сравнения значений. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости вычисления выражения expr. Выражения могут быть как унарными, так и бинарными. Унарные выражения часто… …   Википедия

  • Test — test  UNIX утилита для проверки типа файла и сравнения значений. Возвращает код возврата 0 (истина) или 1 (ложь) в зависимости вычисления выражения expr. Выражения могут быть как унарными, так и бинарными. Унарные выражения часто… …   Википедия

  • Test — Test, TEST or Tester may refer to:In science:* Experiment, part of the scientific method * Test (biology), the shell of sea urchins and certain microorganisms * Test method, a definitive procedure that produces a test result * Chemical test, a… …   Wikipedia

  • UNIX-Kommandos — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

  • Unix-Befehle — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

  • Unix-Kommando — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia

  • Unix Kommandos — Unix Systeme zeichnen sich durch eine Vielzahl von Kommandos aus, mit denen sich über eine Shell das Betriebssystem bedienen lässt. Die Syntax dieser Kommandos weicht unter den verschiedenen Systemen voneinander ab. Es existieren die beiden… …   Deutsch Wikipedia


Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”

We are using cookies for the best presentation of our site. Continuing to use this site, you agree with this.