Correspondance d’une variable par rapport à un modèle Chaîne:correspondance par rapport à un modèle

Objectif

Comparer la correspondance entre le contenu d’une variable et un modèle.

Exemple

Tester si la variable nombre contient une suite de chiffres, précédée d’un signe éventuel.

Première méthode (ksh, bash)

Utilisation de la commande [[ ]] avec les expressions étendues :

$ [[ $nombre = ?([+-])+([0-9]) ]]  && echo '$nombre est un nombre' 

(cf. chapitre Les bases de la programmation shell - Exécution de tests)

Deuxième méthode (ksh, bash)

Utilisation de la structure de contrôle case avec les expressions étendues :

$ case $nombre in  
>    ?([-+])+([0-9]) ) echo '$nombre est un nombre' ;;  
>    ...  
> esac 

(cf. chapitre Les bases de la programmation shell - Les structures de contrôle)

Autres méthodes

Les utilisateurs travaillant en Bourne shell ne pouvant utiliser les expressions étendues, ils devront recourir aux méthodes 4 à 6 de la section Test d’égalité entre deux chaînes avec les expressions régulières adéquates (expr, grep -E, awk).

couv_EI7PRO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Test d'inégalité entre deux chaînes
Suivant
Non-correspondance d'une variable par rapport à un modèle