[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

bash array



Ciao a tutti, non riesco a capire questo strano (almeno per me)
comportamento della bash:
> $ echo "uno, due, tre e quattro, cinque" | sed 's/[ ]*\([^,]*\)[^
> ]*/"\1" /g'
> "uno" "due" "tre e quattro" "cinque"
> $ test=($(echo "uno, due, tre e quattro, cinque" | sed 's/[
> ]*\([^,]*\)[^ ]*/"\1" /g'));
> $ for i in "${test[@]}"; do echo $i; done;
> "uno"
> "due"
> "tre
> e
> quattro"
> "cinque"
> $ test=("uno" "due" "tre e quattro" "cinque")
> $ for i in "${test[@]}"; do echo $i; done;
> uno
> due
> tre e quattro
> cinque
Io mi sarei aspettato che inizializzare test con test=("uno" "due" "tre
e quattro" "cinque") oppure test=($(echo "uno, due, tre e quattro,
cinque" | sed 's/[ ]*\([^,]*\)[^ ]*/"\1" /g')) fosse la stessa cosa ma
non sembra essere. Qualcuno mi sa spiegare il motivo?

Grazie

Piviul


Reply to: