如何逐行读取并从键盘获取输入?
我有像 - 这样的 shell 脚本,
while read -r line;
do
echo $line
done < file.txt
工作正常,但我需要在从文件读取每一行后提示用户输入。 我尝试添加“read”,但这不起作用。
while read -r line;
do
echo $line
#prompt user here
read input_user
done < file.txt
有什么想法吗?我也愿意使用 awk。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
您可以使用
read
的-u
选项来指定文件句柄:-u 9
与9 意味着
while
循环和“常规”read
语句中的读取仍然来自标准输入。您通常可以选择任何尚未使用的文件句柄 -
0
、1
和2
分别是标准输入、输出和错误。我倾向于从9
开始,然后根据需要逐步向下,具体取决于我需要一次访问多少个文件句柄。成绩单样本:
You can use the
-u
option ofread
which specifies the file handle:The
-u 9
combined with the9<file.txt
means that the reads in thewhile
loop and "regular"read
statements still come from standard input.You can generally choose any file handle not already used -
0
,1
and2
are standard input, output and error respectively. I tend to start at9
and work my way down as needed, depending on how many file handles I need to access at once.Sample transcript:
对循环的
读取
使用不同的FD。Use a different FD for the loop's
read
.如果您确实指的是键盘,
则无论任何重定向如何,都将从连接的终端读取。
If you really mean keyboard,
will read from the attached terminal regardless of any redirections.