4.3. Autres options relatives aux caractères et expressions génériques

  1. Outre extglob, d’autres options de la commande interne shopt permettent de modifier la création de la liste des noms d’entrées. Ces options sont : dotglob, nocaseglob, nullglob, failglob. Par défaut elles sont inactives (off).

    A l’état on :

    • dotglob signifie que les noms d’entrées commençant par . (caractère point) seront également traités

    • nocaseglob signifie que les majuscules et minuscules ne seront pas différenciées

    • nullglob signifie qu’un modèle ne correspondant à aucune entrée sera remplacé par une chaîne vide et non par le modèle lui-même

    • failglob signifie qu’un modèle ne correspondant à aucune entrée provoquera une erreur.

    $ pwd
    /home/sanchis/glob
    $
    $ ls -la
    total 8
    drwxr-xr-x  2 sanchis sanchis 4096  6 janv. 19:23 . 
    drwxr-xr-x 19 sanchis sanchis 4096  6 janv. 19:22 .. 
    -rw-r--r--  1 sanchis sanchis    0  6 janv. 19:23 .sessions 
    -rw-r--r--  1 sanchis sanchis    0  6 janv. 19:23 video 
    -rw-r--r--  1 sanchis sanchis    0  6 janv. 19:23 viDEos
    $ 
    $ echo p*
    p*					=> comportement par défaut
    $ 
    $ shopt -s nullglob
    $ 
    $ echo p*
    					=>  chaîne vide	
    $ 
    $ shopt -s failglob
    $
    $ echo p*
    bash: pas de correspondance : p*	=> message d’erreur
    $
    $ echo *s*
    viDEos					=> comportement par défaut
    $ 
    $ shopt -s dotglob
    $ 
    $ echo *s*
    .sessions viDEos			=> fichier caché .sessions pris en compte
    $ 
    $ echo *d*					
    video					=> comportement par défaut
    $ 
    $ shopt -s nocaseglob
    $ 
    $ echo *d*
    video viDEos
    $
    
  2. A l’état on, l’option noglob de la commande interne set supprime l’interprétation des caractères et expressions génériques.

    $ ls -la
    total 8
    drwxr-xr-x  2 sanchis sanchis 4096  6 janv. 19:23 . 
    drwxr-xr-x 19 sanchis sanchis 4096  6 janv. 19:22 .. 
    -rw-r--r--  1 sanchis sanchis    0  6 janv. 19:23 .sessions 
    -rw-r--r--  1 sanchis sanchis    0  6 janv. 19:23 video 
    -rw-r--r--  1 sanchis sanchis    0  6 janv. 19:23 viDEos 
    $
    $ shopt -u dotglob	=> le fichier caché .sessions ne sera pas pris en compte
    $
    $ echo +([[:lower:]]) * 
    video video viDEos    	=> interprétation des caractères et expressions génériques
    $
    $ set –o noglob 		=> suppression de l’interprétation
    $ set -o | grep noglob
    noglob         	on
    $
    $ echo +([[:lower:]]) *
    +([[:lower:]]) *		=> aucune interprétation
    $