Jak odczytać wejście mutliline ze stdin do zmiennej i jak wydrukować je w powłoce (sh, bash)?
Chcę:
odczyt z wielu linii wejściowychstdin
na zmiennąA
wykonuj różne operacjeA
ruraA
bez utraty symboli ogranicznika (\n
,\r
,\t
, itp.) do innego poleceniaObecny problem polega na tym, że nie mogę go przeczytaćread
polecenie, ponieważ przestaje czytać w nowej linii.
Mogę czytać stdin zcat
, lubię to:
my_var=`cat /dev/stdin`
, ale potem nie wiem, jak to wydrukować. Aby nowa linia, karta i inne ograniczniki nadal tam były.
Mój przykładowy skrypt wygląda tak:
#!/usr/local/bin/bash
A=`cat /dev/stdin`
if [ ${#A} -eq 0 ]; then
exit 0
else
cat ${A} | /usr/local/sbin/nextcommand
fi