Как прочитать мутлиновый ввод из stdin в переменную и как распечатать его в оболочке (sh, bash)?
Я хочу сделать следующее:
читать в несколько строк ввода отstdin
в переменнуюA
делать различные операции наA
трубаA
без потери символов-разделителей (\n
,\r
,\t
и т. д.) другой командеТекущая проблема заключается в том, что я не могу прочитать это сread
команда, потому что она перестает читать на новой строке.
Я могу читать STDIN сcat
, нравится:
my_var=`cat /dev/stdin`
, но тогда я не знаю, как это напечатать. Так что перевод строки, табуляции и другие разделители все еще там.
Мой пример скрипта выглядит так:
#!/usr/local/bin/bash
A=`cat /dev/stdin`
if [ ${#A} -eq 0 ]; then
exit 0
else
cat ${A} | /usr/local/sbin/nextcommand
fi