problème de double quote

Christophe Martin christophe.martin at sdt.univ-brest.fr
Tue Jan 24 11:34:51 CET 2006


salut a tous !

Vincent Lefevre a écrit :
> On 2006-01-23 17:34:37 +0100, Florent Guiliani wrote:
> 
>>Florent Guiliani a écrit :
>>
[snip]
>>
>>nous donne 1 2 3 - 4 5 6
>>je me demande s'il y a une solution sans changer IFS
> 
> 
> Aucune idée. C'est pour ça que les tableaux de zsh, c'est mieux.
> 
Y'en a, mais attentioin le redecoupage peut intervenir a 2 niveaux
	1) l'appelant
	2) l'appel'e
C'est pour ca que l'appel'e DOIT utiliser "$0" "$1" etc ou "$@"
avec les " (sauf si on veut qu'il redecoupe bien sur)

Pour proteger dans l'appelant, la solution la plus simple passe en effet
par des tableaux, nomm'es ou non

a[0]='1 2 3'
a[1]='2 3 4'
bash -c 'echo "$0" - "$1"' "${a[@]}"

ou encore
set -- '1 2 3' '2 3 4'
bash -c 'echo "$0" - "$1"' "$@"

Bref, les tableaux c'est pas mal meme sous bash/ksh le tout c'est d' avoir
la syntaxe pour ne pas provoquer un redecoupage des *elements* du tableau

Sinon, y'a des trucs vachement plus compliques a base de printf %q et eval,
mais bon...

Christophe

PS
je travaille pour ma chapelle, ma libsh a la con de la mort qui tue a tout
un tas de truc concernant la gestion des tableaux...

Pour creer le tableau a, on pourrait ecrire des trucs de ce genre :

tabajoute a '1 2 3'
tabajoute a '2 3 4'

ou bien

tableau a '1 2 3' '2 3 4'
tabajoute a '5 6 7' '8 9 10'

http://schplurtz.free.fr/schplurtziel



More information about the Shell mailing list