Sommaire

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 complexes :

$ [[ $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 complexes :

$ 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 complexes, 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).