Salut, Je suis en train de parcourir la page de man zsh-lovers * (dont Bruno est contributeur malgré lui :-) qu'il en soit remercié !) et je bloque sur un truc certainement tout bête ... mais vraiment zsh est un shell complexe :-) La page de man dit : ################## Variables can be modified by modifiers, too. That makes modification of variables possible without using any external program. sentence="beginning and some words of a sentence with end." Now lets split this sentence-var by using the (s| |) modifier which modifies words by splitting at " ": words=${(s| |)sentence} print $words[1] -> "beginning" print $words[-1] ->"end." ################## Or, dans mon shell il se passe : ################## jems-laptop% sentence="beginning and some words of a sentence with end." jems-laptop% words=${(s| |)sentence} jems-laptop% print $words[1] b jems-laptop% echo $#words 48 ################## Bref, il semble que le découpage en tableau ne se passe pas comme prévu :-) jems-laptop% setopt interactive monitor shinstdin zle jems-laptop% zmodload zsh/zutil zsh/complete zsh/computil zsh/main zsh/terminfo zsh/zle zsh/parameter jems-laptop% zsh --version zsh 4.3.2 (i686-pc-linux-gnu) La question est simple : de quoi ai-je besoin pour que ca fonctionne ? ou que dois-je faire ? Merci ! Jeremy * : zsh-lovers - tips, tricks and examples for the Z shell, existe en paquet deb, fournit des documentations/trucs/astuces pour zsh, avec notamment toute une partie provenant de Bruno Bonfils.
On Mon, Sep 03, 2007 at 08:57:30PM +0200, Jeremy Monnet wrote:
Salut,
Salut,
words=${(s| |)sentence} print $words[1] -> "beginning" print $words[-1] ->"end."
Je n'ai pas la prétention de connaitre les arcannes de zsh mais ces lignes sont AMHA fausses! La ligne: words=${(s| |)sentence} - Prend un scalaire - l'explose en tableau - enregistre ce tableau dans ... un scalaire. "Tu était scalaire et tu retourneras scalaire". words=( ${(s| |)sentence} ) marche beaucoup mieux cordialement
On 9/4/07, Marc Chantreux <marc.chantreux@ulpmm.u-strasbg.fr> wrote:
La ligne: words=${(s| |)sentence}
- Prend un scalaire - l'explose en tableau - enregistre ce tableau dans ... un scalaire.
"Tu était scalaire et tu retourneras scalaire".
words=( ${(s| |)sentence} )
marche beaucoup mieux
Effectivement, la réponse est simple et précise. :-) Merci Marc ! Jeremy
participants (3)
-
Jeremy Monnet
-
Marc Chantreux
-
marc.chantreux@ulpmm.u-strasbg.fr