Pour que bash interprète les expressions génériques, il est nécessaire que l’option extglob de la commande interne shopt soit activée.
$ shopt extglob extglob on => l'option est activée $
Les expressions génériques de bash sont :
?(liste_modèles) : correspond à 0 ou 1 occurrence de chaque modèle
*(liste_modèles) : correspond à 0,1 ou plusieurs occurrences de chaque modèle
+(liste_modèles) : correspond à au moins 1 occurrence de chaque modèle
@(liste_modèles) : correspond exactement à 1 occurrence de chaque modèle
!(liste_modèles) : correspond à tout sauf aux modèles mentionnés
Dans une expression générique, liste_modèles désigne une suite d’un ou plusieurs modèles séparés par un caractère |. Dans ce contexte, le caractère | signifie OU.
$ echo +([[:lower:]]) => noms constitués que de minuscules a à ami an e é émirat état minuit zaza $ $ echo !(+([[:lower:]])) 1 _a A Arbre En Zoulou $ echo !(*at|a*) 1 _a A à Arbre e é En minuit zaza Zoulou $
Si l’on souhaite utiliser les expressions génériques dans un fichier shell, on y inclura préalablement la commande shopt –s extglob.