bash read命令非常方便:
然而,我在试图同时做两件事时遇到了问题。
例如:
#!/bin/bash
while read item
do
echo Item: $item
read -p "choose wisely: " choice
echo You still have made a $choice.
done < /tmp/item.list
bash使用item.list文件中的下一个项目填充$ choice,而不是阻止和等待用户输入选项。
bash是否支持在读取循环中嵌套读取?
答案 0 :(得分:29)
最简单的解决方法是从另一个文件中读取外部read
描述符而不是标准输入。在Bash中,-u
选项使得a
更容易。
while read -u 3 item
do
# other stuff
read -p "choose wisely: " choice
# other stuff
done 3< /tmp/item.list