【发布时间】:2014-12-20 23:42:24
【问题描述】:
我正在制作一个通过管道 (stdin) 获取输入的脚本,如 (other_command | my_script)。但是,在我阅读了整个标准输入之后,我需要暂停脚本并等待用户按 Enter。
这是一个示例脚本。
#!/bin/bash
if [[ -t 0 ]]; then
echo "No stdin"
else
echo "Got stdin"
while read input; do
echo $input
done
fi
echo "Press enter to exit"
read
它的工作原理是这样的;
$ echo text | ./script
Got stdin
text
Press enter to exit
$
它跳过了我最后的read。
但是;
$ ./script
No stdin
Press enter to exit
stops here
$
从标准输入读取后,如何让read 工作?是否有适用于 Linux 和 OSX 的解决方案?
【问题讨论】: