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