我有一个bash脚本,我主要在交互模式下使用。但是,有时我会在脚本中输入一些内容。在循环中处理stdin之后,我使用“-i”(交互式)复制文件。然而,这从来没有得到执行(在管道模式),因为(我猜)标准输入没有被刷新。与一个示例简化:bash:冲洗标准输入(标准输入)
#!/bin/bash
while read line
do
echo $line
done
# the next line does not execute
cp -i afile bfile
地点这t.sh,并与执行: LS | ./t.sh
读取未执行。 我需要在读取之前刷新stdin。它怎么能这样做?
+1,但我会用$(TTY)代替的/ dev/tty设备。 – mouviciel 2010-06-18 08:06:57
@mouviciel nope,$(tty)不起作用。试试吧) – unbeli 2010-06-18 08:10:33
@mouviciel:为什么? – 2010-06-18 08:13:08