On Wed, 24 Sep 2003 08:20:17 +0200
maurice furstoss <[EMAIL PROTECTED]> wrote:

> le Mon, 22 Sep 2003 21:52:08 +0200
> jipe <[EMAIL PROTECTED]> a écrit:
> 
> > pour supprimer le / de /boot s'il est le 1er caractère
> > 
> > $ echo ${SAUVE_REP#/}
> > boot
> > 
> > pour supprimer le 1er caractère quel qu'il soit 
> > 
> > $ echo ${SAUVE_REP#?}
> > boot
> > 
> > ou encore
> > 
> > $ echo ${SAUVE_REP:1}
> > boot
> 
>  merci bien, j'avais mal placé le "{" dans la 3° formule...
> si je puis me permettre, dans la 1° et 2°, quelle est la signification précise du 
> "#", pourquoi cela ne concerne t-il que le 1er caractère?

quelques lignes pour espliquer ...

$ var=a.b.c.d
$ echo ${var%.*}
a.b.c
$ echo ${var#*.}
b.c.d
$ echo ${var%%.*}
a
$ echo ${var##*.}
d
$ 

avec % j'élimine ce qui est à droite du point le plus à droite
avec %% ce qui est à droite du point le plus à gauche
avec # j'élimine ce qui est à gauche du point le plus à gauche
avec ## ce qui est à gauche du point le plus à droite ...

dans chaque cas, j'utilise une wildcard * qui permet d'aller chercher le point à 
l'intérieur de $var. sans l'*, il faudrait que le point soit à une des extrémités de 
$var.

$ var=.a.b.c.d.
$ echo ${var%.}
.a.b.c.d
$ echo ${var#.}
a.b.c.d.
$ echo ${var%%.}
.a.b.c.d
$ echo ${var##.}
a.b.c.d.
$ 

% et %% ont le même comportement, idem pour # et ##. 

le ? est aussi une wildcard qui signifie "au moins un caractère, quel qu'il soit". 
employé seul, il signifiera 1er ou dernier caractère selon que la substitution se 
fasse avec # ou %.

>  d'autre part, quelle est la signification générale du ":"?

il signifie qu'on se place à un endroit précis de la variable. le 1er : donne 
l'emplacement de départ, le 2ème le nombre de caractères à lire. le 1er caractère est 
toujours numéroté 0. pour lire 5 caractères depuis le 3ème, on écrit "${var:2:5}". à 
défaut de 2ème chiffre, c'est la variable est lue depuis l'emplacement de départ 
jusqu'à la fin. pour lire $var à partir du 2ème caractère et jusqu'au bout, c'est 
"${var:1}"

> 
> -- 
> maurice furstoss 
> 
> 

bye
jipe

Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";.

Foire Aux Questions de la liste : http://mdk.mondelinux.org

Répondre à