Hallo,
ich habe kürzlich erst die Möglichkeiten entdeckt, die Shelloption lastpipe zu setzen.
wieso funktioniert folgendes (bei mir) nicht ❓ :
1 2 3 | shopt -s lastpipe echo eins zwei drei | read v1 v2 v3 echo "$v1 $v2 $v3" |
Ich weiß, dass ich eine Gruppe von durch Leerzeichen / Tabulatoren / Newlines getrennten Werten auch in ein Array packen kann:
1 2 | array=($(echo eins zwei drei)) array=(eins zwei drei) |
Aber mich interessiert trotzdem obige Variante, sowie jede andere funktionierende Möglichkeit. Irgendwie bin ich mal wieder an so einem Punkt, den ich schon längst verstanden glaubte... Sonst bekommt man die Wordtrennung oft unfreiwillig, weil man das Quoten vergessen hat (z.B. bei Übergabeparametern). Wenn ich sie aber mal mit Absicht nutzen will, dann komme ich ins Stocken. Der Weg über das Array erscheint mir irgendwie eher als "Trick" (vielleicht falsch, das so zu sehen).
Gut, in der Praxis kommt man wohl auch meistens mit einer for-Schleife aus...
1 2 3 | for i in eins zwei drei; do ... done |