免费注册 查看新帖 |

Chinaunix

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

【shell】【未解决】--read无法识别结束符 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-02-17 09:02 |只看该作者 |倒序浏览
本帖最后由 easterday 于 2011-02-17 17:00 编辑

这是个很头疼的问题,在脚本A中,调用了脚本B之后的其他处理中,read无法识别结束符,从屏幕输出任何字符或按enter均无法终止read,只能长按ctrl-D或者终止程序。
我在脚本B调用前后用set查了下,IFS是相同的,其他环境变量也没什么异常变化。

大家遇到过这种奇怪的现象么?请多提建议,谢谢!

P.S. 脚本A和B中都用的是KSH。我也尝试着用read -d改变分隔符,报错了,不支持-d选项。

论坛徽章:
0
2 [报告]
发表于 2011-02-17 11:24 |只看该作者
回复 1# easterday


    是不是控制还没有回到A中。。。

论坛徽章:
0
3 [报告]
发表于 2011-02-17 14:38 |只看该作者
回复 2# 好看的附件


   谢谢回复。只是,不知道您说的“控制”涉及的是哪些环境变量?我怎样才能查到呢?能否多给些提示?

论坛徽章:
0
4 [报告]
发表于 2011-02-17 15:20 |只看该作者
回复 3# easterday


    我的意思是你调用了B脚本,是不是还在运行B脚本。还没有阻塞到read,所以你输入没有反应

论坛徽章:
0
5 [报告]
发表于 2011-02-17 15:53 |只看该作者
回复 1# easterday


    一般B脚本执行结束会自动退出,如果没有可以在脚本里面自己写上退出,

论坛徽章:
0
6 [报告]
发表于 2011-02-17 16:59 |只看该作者
本帖最后由 easterday 于 2011-02-17 17:02 编辑

回复楼上两位,B肯定退出了,因为后续的处理中在read之前的语句都执行正常。
非常的郁闷。今天试着把A放到bash环境下,并在read中加了-d 和-t选项。在B被调用之前,read功能正常,B结束后,-d标识的特殊终止符没有起到作用!最后由于-t选项好歹timeout退出了。

这个问题,请教了周围的一些同事,都没有答案,暂时将帖子标识【未解决】,等有解决方法的时候,再结贴。
后续我会继续查找原因,也希望大家多提建议,谢谢。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP