Table des matières

Bash : Les opérateurs de test sur les paramètres

Nota :

Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli !

Introduction

Dans la page du manuel de bash, les opérateurs des commandes de test sont nommées primitives.

Bash dispose de plusieurs commandes pour réaliser des tests sur des paramètres.

  • Les commandes [ et test sont équivalentes.
  • Les commandes [ et test sont disponibles dans leurs versions externe : /usr/bin/[ et /usr/bin/test.
    • Elles ont toutes les deux la même page de manuel (man [ ou man test).
  • Les commandes internes disposent de primitive que n'ont pas les commandes externes.
Rappels :
  • Une commande de test renvoie le code de retour 0 (considérer comme vrai) lorsque le test réussi et 1 (considérer comme faux) lorsqu'il échoue.
  • Le code retour d'une commande est mémorisé dans le paramètre spécial $?.
  • L'opérateur de contrôle && exécute la commande suivante, si la commande précédente à renvoyée un code de retour égale à 0.
  • L'opérateur de contrôle || exécute la commande suivante, si la commande précédente à renvoyée un code de retour supérieur à 0.

Les commandes de test disposent de deux primitives unaires pour tester les paramètres.

Synopsis

Liste des primitives de test sur les paramètres
Primitives Retours
-v Vrai si le paramètre existe.
-R Vrai si le paramètre est une référence de nom.

Exemples

Testons si la variable var existe.

var="Debian Facile"		# var existe et n'est pas une chaîne vide.
[ -v var ]	; echo $?
 
var=				# var existe et est une chaîne vide.
test -v var	; echo $?
 
unset var			# Destruction de var (var n’existe plus).
[[ -v var ]]	; echo $?
0
0
1
Une référence de nom est un paramètre qui mémorise le nom d'un autre paramètre.
Il est nécessaire d'utiliser la commande declare -n pour construire une référence de nom.

Testons si la variable v est une référence de nom.

var="Debian GNU Linux"
declare -n v=var
 
echo var=$var
echo v=$v
v="Debian Facile"
echo var=$var
 
[ -R var ] ; echo $?
[[ -R v ]] ; echo $?
 
declare -p var v
 
unset var v
var=Debian GNU Linux
v=Debian GNU Linux
var=Debian Facile
1
0
declare -- var="Debian Facile"
declare -n v="var"

Tuto précédent

Détail et caractères

La suite c'est ici

Les opérateurs de test sur chaînes

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !