免费注册 查看新帖 |

Chinaunix

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

问个问题:关于shell命令 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-13 21:33 |只看该作者 |倒序浏览
执行命令
ls >file
more
显示目录下有file文件

可是根据书本上对shell的解释,应该是先执行ls,然后才将ls中的结果连接到名为file的文件中

这样的话文件名中是不应该出现file文件的啊?

[ 本帖最后由 homeaddress 于 2008-7-13 21:34 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2008-07-13 21:44 |只看该作者

我的理解

shell 解释命令行时,遇到 >file 就看看当前目录有没有file这个文件,没有建立这个文件;有就会将其清空,为后面的操作做准备;

接着,执行 ls;通常 ls 输出到 stdout;但这里,shell 将其输出到文件 file 中。

所以,shell先 检查 file文件的存在与否,然后再执行 ls。

于是,file 就出现在文件 file 中!

不知我这样解释可否?

评分

参与人数 1可用积分 +3 收起 理由
零二年的夏天 + 3 我很赞同

查看全部评分

论坛徽章:
0
3 [报告]
发表于 2008-07-13 21:57 |只看该作者
原帖由 萍水e相逢 于 2008-7-13 21:44 发表
shell 解释命令行时,遇到 >file 就看看当前目录有没有file这个文件,没有建立这个文件;有就会将其清空,为后面的操作做准备;

接着,执行 ls;通常 ls 输出到 stdout;但这里,shell 将其输出到文件 file 中 ...

谢谢,刚刚又查了下,shell是有创建新文件的功能的,o(∩_∩)o...

论坛徽章:
0
4 [报告]
发表于 2008-07-13 22:14 |只看该作者

呵呵

共同进步

论坛徽章:
0
5 [报告]
发表于 2008-07-13 23:28 |只看该作者
原帖由 萍水e相逢 于 2008-7-13 21:44 发表
shell 解释命令行时,遇到 >file 就看看当前目录有没有file这个文件,没有建立这个文件;有就会将其清空,为后面的操作做准备;

接着,执行 ls;通常 ls 输出到 stdout;但这里,shell 将其输出到文件 file 中 ...


按照我的理解,是shell在执行管道操作的时候,首先要检查管道两端是否都准备好了,然后再执行命令
也就是说ls > file,先准备好file,然后执行ls 通过管道传给file,当然也会把file 这个文件名存入file中

论坛徽章:
0
6 [报告]
发表于 2008-07-14 07:52 |只看该作者
哇靠!好强大啊!共同进步!

论坛徽章:
0
7 [报告]
发表于 2008-07-14 09:21 |只看该作者
哇靠!好强大啊!共同进步!

论坛徽章:
0
8 [报告]
发表于 2008-07-14 10:31 |只看该作者
我一般用  >>

论坛徽章:
0
9 [报告]
发表于 2008-07-14 11:24 |只看该作者
2楼解释的非常清楚了
学习了

论坛徽章:
0
10 [报告]
发表于 2008-07-14 14:31 |只看该作者
呵呵,2楼的解释应该是可靠的。。。
还有个例子就是 cat < urfile > urfile
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP