On 11 Mar 2012, at 21:36, Davide Brini wrote:
> Io mi sorpresi quando vidi che non faceva word splitting sulle variabili per
> default:
>
> var="foo bar"
> for i in $var; do
> echo "$i"
> done
>
> Con bash (e tutte le shell tranne zsh) stampa
>
> foo
> bar
>
> mentre con zsh stampa
>
> foo bar
Sì, come si diceva qualche differenza c'è (sennò che senso avrebbe avere una
shell diversa! :-) ).
Se qualcuno si sta strappando i capelli, noti che - se ricordo bene - il
mancato split vale nel caso delle variabili. Passo 1 variabile ed è una, anche
se ha degli spazi. Se faccio un classico:
:> a.txt ; :> b.txt ; :> c.txt
for f in *.txt; do
echo $f
done
Ottengo il risultato "atteso":
a.txt
b.txt
c.txt
- ap
|