快速业务通道

unix中 管道符让输入源不起作用

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-02
 管道符是Unix操作系统中的一个重要工具,是Windwos操作系统不具备的一个重大改进.众所周知,Unix操作系统在设计的时候,遵循的是小就是没的设计原则,每个命令只完成一些简单的功能.如上面这个例子中,Unix操作系统设计者完全可以在wc命令中加入一个参数,让wc命令只显示最终结果,而不显示明细.但是设计者却没有这么做.如果要这么处理的话,那么就需要给很多命令都加入这个选项.那就破坏了Unix操作系统小即是美的设计原则.为此Unix系统设计者推进系统工程师采用管道符把多个流合并起来,让一个命令的输出作为另一个命令的输入,来实现命令之间的组合.为此管道符是Unix操作系统中的核心.基本上每一个实用的脚本程序都能够看到管道符的存在.为此作为系统工程师,要了管道符的用法.根据笔者的经验,从理论上来说管道符很简单.在任何一本教科书上,对于管道符的介绍估计都不会超过五页.但是管道符的内容远远比这些书上说的要多.也就是说,系统工程师要用好管道符,主要是要靠日后工作中经验的积累.说句比较具有哲理的话,就是管道符的应用只可意会、不可言传.为此笔者觉得管道符的应用效果直接跟系统工程师的工作经验有关.为此笔者建议,大家要提高对管道符的认识的话,那么最好的方法就是去看一些过来人编写的脚本程序.从这些脚本程序中,系统工程师可以有不少的收获.笔者现在也经常看一些恐龙级专家所编写的程序,还往往能够从中学到一些管道符的应用经验.总之,从书本上基本上学不到管道符的高级技巧.要成为一个管道符应用的高手,夺取观摩专家写的程序是一个捷径.
Empire CMS,phome.net

  另外笔者再跟大家介绍一条管道符应用的基本规则.掌握这条规则无论是对于大家观摩其他人写的程序,或者是自己在用到管道符时都非常的有用.这条规则就是管道符左侧的命令使用标准输出,而右侧的命令使用标准输入.也就是说,系统工程师看到一个比较复杂的命令,有五六个管道符组成.此时不用慌,只需要从左到右一个个看下去即可.前一个命令是一个标准输出,其输出的结果就是下一个命令的输入参数,以此类推即可.

  通过管道符可以把一些简单的命令组合起来实现复杂的功能.为此有些专家也把Unix操作系统形象的比喻从搭积木的游戏.一个个小木块就是Unix操作系统的命令,如果把这些木块通过插口(管道符号)把他们组合成一个好看的模型玩具(负责的功能),这不仅要求用户有比较扎实的基本知识,了解各个命令的用法;还要求系统工程师具有一定的想象力.只有具有想象力,才能够把本来互不相关的命令结合起来,以完成一些复杂的功能.恐怕这也是Unix操作系统对于系统工程师提出的一个比较特殊的要求.其他开发语言或则操作系统对于这方面的要求估计都没有Unix操作系统这么强烈.为此系统工程师在使用管道符的时候,要具有创造性,要敢于尝试.

  为此笔者认为系统工程师在使用管道符的时候,要善于从其他专家的程序中取经、要善于想象,并遵循管道符应用的基本规则.只有如此,系统工程师才有可能成为管道符应用层面的专家.

  四、有否其他的解决方式?

  通过管道符可以让某些输入源不起作用.不过在Unix操作系统中还提供了一个特殊的文件,也可以实现过滤的作用.这个文件就是/dev/null文件.这是Unix操作系统中的一个特殊文件,其回接受任何流的输入,但是不会增加文件的大小.但是这个文件的用途远远没有管道符的作用大.通常情况下,如果用来过滤一些标准的错误信息,那么采用这个文件的话比较合适.在其他情况下如果要让输入源不起作用的话,那么笔者建议系统工程师利用管道符来实现.

Empire CMS,phome.net

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号