免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: chuizx
打印 上一主题 下一主题

在脚本中 cat 文件没显示 [复制链接]

论坛徽章:
1
2015年亚洲杯之韩国
日期:2015-04-24 09:07:02
11 [报告]
发表于 2008-12-12 14:34 |只看该作者
谢谢星星的解释了

论坛徽章:
0
12 [报告]
发表于 2008-12-12 14:55 |只看该作者
原帖由 smallstar001 于 2008-12-12 14:32 发表


linux是把数据输出倒缓冲区之后,然后进行系统调用把数据写进文件

可能是/usr/sbin/infor_face命令把输出都输出倒缓冲区之后,exit了,到这 shell就认为这个命令结束了

就去执行cat,实际上数据还在缓 ...



虽然我对这个现象也很困惑, 但我敢肯定这个解释纯粹扯淡!

论坛徽章:
0
13 [报告]
发表于 2008-12-12 15:01 |只看该作者
原帖由 nhw_cs 于 2008-12-12 14:55 发表



虽然我对这个现象也很困惑, 但我敢肯定这个解释纯粹扯淡!


呵呵,我说是可能,应为我刚看了 linux程序设计,书上说数据是先去缓冲区,到了一定长度了就写进文件,

其实我的理解也有限,把我的看法说出来了下,希望牛人能给我标准答案

论坛徽章:
0
14 [报告]
发表于 2008-12-12 15:08 |只看该作者
原帖由 smallstar001 于 2008-12-12 15:01 发表


呵呵,我说是可能,应为我刚看了 linux程序设计,书上说数据是先去缓冲区,到了一定长度了就写进文件,

其实我的理解也有限,把我的看法说出来了下,希望牛人能给我标准答案


你要注意的是, 缓冲区不是'跨进程'的 .....

论坛徽章:
0
15 [报告]
发表于 2008-12-12 15:19 |只看该作者
原帖由 nhw_cs 于 2008-12-12 15:08 发表


你要注意的是, 缓冲区不是'跨进程'的 .....


这个该怎么理解?

shell 是父进程

info_face是子进程。

这个不是‘跨进程’是什么意思呀?

论坛徽章:
0
16 [报告]
发表于 2008-12-12 16:20 |只看该作者
原帖由 chuizx 于 2008-12-12 11:32 发表
我有一脚本,脚本的内容是 调用编译好的程序(infor_face)。把infor_face的输出结果定向到以文件(/tmp/bb),然后cat bb文件。在执行脚本时,在屏幕上居然没打印bb文件内容,但/tmp目录下有bb文件 ,而且在命 ...


可以用tee的
[ -f /usr/sbin/infor_face ] &&  /usr/sbin/infor_face |tee /tmp/bb

论坛徽章:
0
17 [报告]
发表于 2008-12-12 16:28 |只看该作者
原帖由 smallstar001 于 2008-12-12 15:19 发表


这个该怎么理解?

shell 是父进程

info_face是子进程。

这个不是‘跨进程’是什么意思呀?



关键是cat也是个子进程啊
这个子进程是在infor_face结束后在启动的,难道说进程结束了,系统还不把缓冲写到硬盘上?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP