我有一个主要在交互模式下使用的 bash 脚本。但是,有时我会在脚本中输入一些输入。在循环中处理标准输入后,我使用“-i”(交互式)复制文件。但是,这永远不会被执行(在管道模式下),因为(我猜)标准输入还没有被刷新。用一个例子来简化:
#!/bin/bash
while read line
do
echo $line
done
# the next line does not execute
cp -i afile bfile
将它放在 t.sh 中,然后执行: ls | ./t.sh
不执行读取。我需要在读取之前刷新标准输入。它怎么能做到这一点?