我试图将完整的stdin读入变量:
#/bin/bash
input=""
while read line
do
echo "$line"
input="$input""\n""$line"
done < /dev/stdin
echo "$input" > /tmp/test
当我运行ls | ./script.sh
或大多数其他命令时,它运行正常。
但是,当我运行cat | ./script.sh
时输入我的消息,然后按Ctrl-C退出cat,它不起作用。
有什么想法吗?
答案 0 :(得分:5)
我会坚持单线
input=$(cat)
当然,Ctrl-D
应该用于表示文件结束。