免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3506 | 回复: 0
打印 上一主题 下一主题

shell读取命令行输入后,循环验证问题? [复制链接]

论坛徽章:
0
1 [报告]
发表于 2012-03-19 12:55 |显示全部楼层
本帖最后由 Perl_Er 于 2012-03-19 14:13 编辑

标准输入变了,所以你的第二个read的输入不是STDIN,而是那个文件,所以在第二个read的时候要回复STDIN
  1. -bash-3.2$ ./verification.sh
  2. Please type for 1:
  3. a
  4. You are right
  5. Please type for 2:
  6. b
  7. You are right
  8. Please type for 3:
  9. c
  10. You are right
  11. -bash-3.2$ cat verification.sh
  12. #!/bin/bash

  13. exec 3<&0
  14. exec <verification.txt
  15. exec 4<&0
  16. while read line
  17. do
  18.         field1=${line%_*}
  19.         field2=${line#*_}
  20.         exec 0<&3
  21.         echo "Please type for ${field1}:"
  22.         read f2
  23.         while [ "${f2}" != "${field2}" ]
  24.         do
  25.                 echo "You typed incorrectly"
  26.                 echo "Please type for ${field1}:"
  27.                 read f2
  28.         done
  29.         echo "You are right"
  30.         exec 0<&4
  31. done
  32. -bash-3.2$ cat verification.txt
  33. 1_a
  34. 2_b
  35. 3_c
  36. -bash-3.2$
复制代码
回复 1# spouter


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP