[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