Sommaire

Comparaison d’une variable par rapport à un modèle

Objectif

Comparer le contenu d’une variable par rapport à 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).