比如
#!/bin/bash
flag=true
cat demo.txt | while read line
do
echo $line
echo "please input flag"
read flag
done
问题1:是不是在读取文件内容的时候,不能在这个循环中再读取控制台的输入?
问题2:有没有什么方法能够实现这个功能?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
因为你读取的都是标准输入,当然不能这样。。
#!/bin/bash
flag=true
exec 3<demo.txt # 3 是 fd
cat <&3 | while read line
do
echo $line
echo "please input flag"
read -u 1 flag
echo $flag;
if [ ! $flag == "true" ];then
exit;
fi
done
这样子能实现你要的效果