免费注册 查看新帖 |

Chinaunix

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

while loop 和 here document [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-10-16 16:33 |只看该作者 |倒序浏览
帮忙看看这段,

#!/bin/sh

while read xxx; do
#======================
# Declare procedures
#======================
rebuild_ind () {
echo $xxx
return $?
}
#==============
# Main program
#==============
    (rebuild_ind) || return 1

done < yyy


文件yyy内容 (共两行):
t1
t2

每当在function rebuild_ind 中用了here document 后, while loop 就只运行一次, 也就是t2没有运行.

百思不得其解.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
2 [报告]
发表于 2005-10-16 16:43 |只看该作者

while loop 和 here document

where is HERE Document

论坛徽章:
0
3 [报告]
发表于 2005-10-17 01:19 |只看该作者

while loop 和 here document

[quote]原帖由 "寂寞烈火"]where is HERE Document [/quote 发表:

当我在rebuild_ind中用here document, while loop 就只运行一次(t1),不运行t2.

rebuild_ind () {
cat <<!
hello
!
return $?
}

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2005-10-17 02:30 |只看该作者

while loop 和 here document

我测试了一下,可以呀
/home/lee/test#cat yyy
t1
t2
/home/lee/test#cat a
#!/bin/sh
while read xxx; do
rebuild_ind () {
echo $xxx
return $?
}
(rebuild_ind) || return 1

done < yyy
/home/lee/test#sh a
t1
t2

论坛徽章:
0
5 [报告]
发表于 2005-10-17 03:17 |只看该作者

while loop 和 here document

[quote]原帖由 "寂寞烈火"][/quote 发表:

谢谢. 改成下面再试试, 你会发现while loop 只运行了一次(t1).

#!/bin/sh
while read xxx; do
rebuild_ind () {
cat <<EOF
hello
EOF
echo $xxx
return $?
}
(rebuild_ind) || return 1

done < yyy

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-10-17 09:28 |只看该作者

while loop 和 here document

  1. # cat file
  2. #!/bin/sh
  3. while read xxx; do
  4. rebuild_ind () {
  5. cat <<EOF
  6. hello
  7. EOF
  8. echo $xxx
  9. return $?
  10. }
  11. rebuild_ind || return 1
  12. done <yyy

  13. # cat yyy
  14. t1
  15. t2

  16. # ./file
  17. hello
  18. t1
  19. hello
  20. t2
复制代码


论坛徽章:
0
7 [报告]
发表于 2005-10-17 12:09 |只看该作者

while loop 和 here document

我将#!/bin/sh改成
#!/bin/ksh, 就ok了.
但还是不知道为什么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP