Wie liest man die Mutliline-Eingabe von stdin in variable und wie druckt man eine in shell (sh, bash) aus?
Was ich tun möchte, ist das Folgende:
Mehrzeilige Eingabe von einlesenstdin
in VariableA
verschiedene Operationen aufA
RohrA
ohne Begrenzungssymbole zu verlieren (\n
,\r
,\t
, etc) auf einen anderen BefehlDas aktuelle Problem ist, dass ich es nicht einlesen kannread
Befehl, da er bei newline nicht mehr liest.
Ich kann mit stdin lesencat
, so was:
my_var=`cat /dev/stdin`
, aber dann weiß ich nicht, wie ich es ausdrucken soll. Damit sind die Zeilenumbrüche, Tabulatoren und anderen Begrenzungszeichen immer noch vorhanden.
Mein Beispielskript sieht folgendermaßen aus:
#!/usr/local/bin/bash
A=`cat /dev/stdin`
if [ ${#A} -eq 0 ]; then
exit 0
else
cat ${A} | /usr/local/sbin/nextcommand
fi