Quelqu'un peut me dire pourquoi ceci fonctionne
matts@Leia:~/tmp% var="ls" matts@Leia:~/tmp% $var test
alors que ceci ne fonctionne pas ?
matts@Leia:~/tmp% var="ls -l" matts@Leia:~/tmp% $var zsh: command not found: ls -l
Alors qu'avec Bash, les deux exemples marchent ?

la zouille c'est merveilleux
c'est l'une des grandes différences métaphysiques avec les shells old school: lorsqu'une variable n'est pas quotée, son expansion n'est pas word splittée (IFS). Le word splitting existait pour avoir un comportement type tableau alors que tout n'est que chaine dans le shell classique. zsh a des tableaux et des tableaux associatifs et ne fait donc pas, par defaut, les bricolages casse-gueule! C'est pour ca que zsh ne s'écrase pas comme une merde lorsqu'il y a des espaces dans les noms de fichier par exemple. Tu peux forcer word splitting en utilisant le modifier =
de plus, je pense qu'un setopt doit pouvoir régler ce comportement ( au pire: utiliser emulate sh ;) )
>Ever heard of .cshrc?
That's a city in Bosnia. Right?
>Ever heard of .cshrc?
That's a city in Bosnia. Right?
Ok, merci. Je vois l'idée,
Ok, merci. Je vois l'idée, même si je ne trouve pas ça très naturel, comme comportement...
RTFFAQ :)
cf la FAQ :) : http://zsh.sunsite.dk/FAQ/zshfaq03.html#l18
Poster un nouveau commentaire