Xpertus,herzlich willkommen hier im Forum!
D630 schrieb:
| while IFS= read -r
do
done
|
Das liest nur zeilenweise:
| $ seq 1 5 | { IFS= read -r a; echo "$a"; }
1
|
Wenn man alles in einer Variable haben will, geht es so:
| $ seq 1 5 | { read -rd '' a; echo "$a"; }
1
2
3
4
5
|
Solche Konstrukte gingen auch:
| mapfile -t stdin < /dev/stdin
|
Die Umleitung ist überflüssig, weil mapfile
sowieso von Stdin liest. Das ist einfacher zu machen mit
Wobei stdin
der Name der Variablen ist, die das Ergebnis aufsammelt. Die Variable wird aber immer als Array angelegt. Es klang nicht so, als ob das das ist, was Xpertus wollte.
Übrigens kann man solche mehrzeiligen Eingaben auch wunderbar mit einem Here-Doc übergeben:
| $ cat <<'INPUT'
> Hallo
> zweite Zeile
> dritte Zeile
> INPUT
Hallo
zweite Zeile
dritte Zeile
|
Statt cat
dann das Kommando / Script.