4.2. Expressions génériques

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
autocd         	off
cdable_vars    	off
cdspell        	off
checkhash      	off
checkjobs      	off
checkwinsize   	on
cmdhist        	on
compat31       	off
compat32       	off
compat40       	off
compat41       	off
dirspell       	off
dotglob        	off
execfail       	off
expand_aliases 	on
extdebug       	off
extglob        	on		=> l'interprétation des expressions génériques est activée
extquote       	on
failglob       	off
force_fignore  	on
globstar       	off
gnu_errfmt     	off
histappend     	on
histreedit     	off
histverify     	off
hostcomplete   	off
huponexit      	off
interactive_comments	on
lastpipe       	off
lithist        	off
login_shell    	off
mailwarn       	off
no_empty_cmd_completion	off
nocaseglob     	off
nocasematch    	off
nullglob       	off
progcomp       	on
promptvars     	on
restricted_shell	off
shift_verbose  	off
sourcepath     	on
xpg_echo       	off
$

Pour activer une option de la commande interne shopt on utilise la commande : shopt –s opt

Pour activer le traitement des expressions génériques par le shell : shopt –s extglob

Les expressions génériques de bash sont :

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.