2016-06-22 10 views
0

Ich möchte einen einzeiligen Text lesen und sie aufteilen, also entschied ich mich für den Befehl read. Wenn ich so versuchen,bash's Lesebefehl mit stdin

$ echo 'a b c d' | while read -a VARARR ; do echo ${VARARR[@]}; done 
a b c d 

Alle funktioniert gut, aber es scheint, wie while Befehl überflüssig ist, so habe ich versucht,

$ echo 'a b c d' | read -a VARARR 

Aber das funktioniert nicht. Warum?

+1

Dies ist auch BashFAQ # 24: http://mywiki.wooledge.org/BashFAQ/024 –

Antwort

0

Oh, ich fand die Antwort von here.

Es heißt

da die Befehle des Rohrlaufs in Subshells, die nicht die übergeordnete Schale ändern können. Als Ergebnis werden die Variablen der übergeordneten Shell nicht geändert