我有一个shell脚本 -如何逐行阅读并从键盘获取输入?
while read -r line;
do
echo $line
done < file.txt
这是工作正常,但我需要从文件中读取每一行后提示用户进行输入。 我试着添加“阅读”,但这是行不通的。
while read -r line;
do
echo $line
#prompt user here
read input_user
done < file.txt
有什么想法?我也愿意使用awk。
我有一个shell脚本 -如何逐行阅读并从键盘获取输入?
while read -r line;
do
echo $line
done < file.txt
这是工作正常,但我需要从文件中读取每一行后提示用户进行输入。 我试着添加“阅读”,但这是行不通的。
while read -r line;
do
echo $line
#prompt user here
read input_user
done < file.txt
有什么想法?我也愿意使用awk。
对循环的read
使用不同的FD。
while read -u 4 -r line
do
echo $line
#prompt user here
read input_user
done 4< file.txt
可以使用-u
选项read
指定的文件句柄:
while read -u 9 -r line; do
echo $line
read -p 'Press ENTER ' input_user
done 9<file.txt
的-u 9
与9<file.txt
结合意味着,在while
循环读取和“常规” read
报表还是来了来自标准输入。
您通常可以选择任何文件句柄尚未使用 - 0
,1
和2
分别是标准输入,输出和错误。我倾向于从9
开始,根据需要一路下调,具体取决于我需要一次访问多少个文件句柄。
样品成绩单:
pax$ ./qq.sh
line 1
Press ENTER <ENTER pressed>
line 2
Press ENTER <ENTER pressed>
line 3
Press ENTER <ENTER pressed>
line 4
Press ENTER <ENTER pressed>
pax$ _
如果你真的是键盘,
while read -r line; do
echo $line
#prompt user here
read input_user </dev/tty
done <file.txt
将从连接终端读取无论任何改向。
感谢guys..your答案工作正常..现在我很困惑哪一个选择(滴答)答案:D .. – 2011-02-10 05:41:22