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).