[Linux-bruxelles] [bash] compréhension d'un script

Rusinsky Stanislas Herman W. A. rusinskystanislas at yahoo.fr
Dim 17 Aou 10:03:53 CEST 2003


On Sat, 2003-08-16 at 17:50, Grégoire Alexandre wrote:
> Google est tjs mon ami  mais heu....
> 
> ${paramètre##mot}
> Le mot est développé pour fournir un motif, comme dans l’expansion des noms de 
> fichiers. Si le motif correspond au debut de la valeur du paramètre, alors le 
> développement prend la valeur du paramètre après suppression du plus petit 
> motif commun (cas ‘‘#’’), ou du plus long motif (cas‘‘##’’).
> 
> Meme en français j'avoue que j'ai du mal à comprendre ( bon la traduction est 
> suisse aussi tout s'explique ;) )...
> 
> Z'auriez pas un petit exemple m'sieur dames ? A vot' bon coeur :)
> 
> Alex

 Bon, je vais essayer en francais, quoique je préfère en anglais.


${paramètre##mot}
             ^^^

dans ton cas le mot c'est "cipcb"

(
if [ "${DEVICE##cipcb}" != "$DEVICE" ] ; then
        cipeinterfaces="$cipeinterfaces $DEVICE"
        continue
fi 
)

donc si le mot est développé pour fournir un motif == ca agit comme une
expension de nom de fichier, ou une expression rationelle (regular
expression en anglais )

donc ton mot "cipcb" pourrais être mis sous la forme plus globale et
moins précise "ci*b", ou encore "ci?c?", etc. (voir man 7 regex ).

donc si le motif (donc l'expansion de ton mot) correspond au début de la
valeur du paramètre 

${paramètre##mot}
  ^^^^^^^^^

alors le 
> développement prend la valeur du paramètre après suppression du plus long motif commun (cas‘‘##’’).

avec deux ou trois exemples ca devient :

stan at kola stan $ export TEST=abcdefghijklmnpoqrstuvwxyz
stan at kola stan $ echo ${TEST##abcdefg}
hijklmnpoqrstuvwxyz
stan at kola stan $ echo ${TEST##qrstuvwxyz} 
abcdefghijklmnpoqrstuvwxyz
/* commentaire : comme dit dans la def, ca ne retire que le motif au
début du paramètre */
stan at kola stan $ echo ${TEST##ab*mn}
poqrstuvwxyz
stan at kola stan $ echo ${TEST##ab??ef}
ghijklmnpoqrstuvwxyz

et tout de suite c'est plus clair.

Si après cette explication tu ne trouves pas ton bonheur envoie toujours
le script, je pourrai regarder ( mais mardi slt, j'ai un exam lundi soir
).

Stanislas.









Plus d'informations sur la liste de diffusion Linux-bruxelles