免费注册 查看新帖 |

Chinaunix

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

请教关于|和read问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-04-30 09:47 |只看该作者 |倒序浏览
我在redhat as3 下面,用ksh和bsh都发现|和read结合不起作用,比如echo "AAA"|read bb;echo $bb的时候显示的是空行,请教高手们

论坛徽章:
0
2 [报告]
发表于 2007-04-30 09:59 |只看该作者
你运行一下洗面的两行试试
  1. read aa
  2. echo -e "\033[31m$aa \033[0m"
复制代码

论坛徽章:
0
3 [报告]
发表于 2007-04-30 17:26 |只看该作者
solaris ksh 下测试通过,

不过这种用法没什么用啊

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2007-04-30 19:05 |只看该作者
原帖由 gaoas 于 2007-4-30 09:47 发表
我在redhat as3 下面,用ksh和bsh都发现|和read结合不起作用,比如echo "AAA"|read bb;echo $bb的时候显示的是空行,请教高手们

  1. echo "AAA"|read bb;echo $bb
复制代码

应该说是一个BUG吧, 见ksh的manual
BUGS
....
BTW, the most frequently reported bug is
               echo hi | read a; echo $a   # Does not print hi
       I'm aware of this and there is no need to report it.

论坛徽章:
0
5 [报告]
发表于 2007-04-30 20:28 |只看该作者
原帖由 gaoas 于 2007-4-30 09:47 发表
我在redhat as3 下面,用ksh和bsh都发现|和read结合不起作用,比如echo "AAA"|read bb;echo $bb的时候显示的是空行,请教高手们

俺纳闷的是它就为什么起作用了
管道| 不是起了个新进程吗,read 到子进程,然后为什么在当前shell下就有值了?

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2007-05-01 13:33 |只看该作者
ksh93和zsh下可以:
|read var
其他的shell包括pdksh不行。是子shell的问题,不同的shell对管道的实现不太一样。
请参看这里:[shell问答录]:命令、进程、子shell...
看Q3之4。

[ 本帖最后由 woodie 于 2007-5-1 16:30 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2007-05-03 18:11 |只看该作者
wa 原来是这样,一开始真是不知其所以然啊
http://bbs.chinaunix.net/viewthr ... mp;highlight=woodie
好帖啊
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP