快速业务通道

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

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-02

在Unxi操作系统中,标准输入和标准输出是外壳程序中可以单独使用的两个独立流.但是有时候系统工程师需要让某些特定的输入源不起作用.当系统工程师在开发一些实用的脚本程序的过程中,经常需要用到.

  一、在什么时候需要让输入源不起作用?

  在什么时候需要让输入源不起作用呢?这个是举不胜举呀.笔者在这里就举两个比较简单的例子.

  一是在统计文件大小的时候需要用到.如现在系统工程师需要统计当前目录下所有文本文件的大小,通常情况下可以使用wc –c *.txt命令.利用这个命令后,操作系统会显示当前目录下所有的文本文件以及对应的大小,然后在以行再统计文本文件的总大小.但是在编写一些脚本程序的时候可能只需要用到文件的总大小即可,而不需要每个文件的大小.如在Unix操作系统上部署了Oracle数据库以后,会产生一些日志文档.数据库管理员为了安全等方面考虑,需要定期对这些日志进行清理.此时数据库管理员可能要求Unix系统工程师让操作系统每天统计一下这些日志文件的大小,当这些文件的容量达到一定的数值时就能够自动通知数据库管理员让他进行处理.这个脚本程序中涉及到一个逻辑判断的问题,为此在返回的结果中只需要有最终的文件总大小即可.如果又有明细、又有总大小的话,反而不能够用来做逻辑运算符的参数.此时需要让某些输入源不起作用.类似的情况还有很多.如在编写磁盘限额管理工具时,当用户从网络上或者其他地方下载复制文件之前,先需要统计目标文件的总大小.如果目标文件的总大小要比可用的空间少的话,那么就直接拒绝,而不是等到放不下的时候再向用户说明.这就会浪费用户的时间.此时也只需要用到一个文件的总大小即可.

  二是需要过滤一些错误信息输入流.

如在使用find命令查找文件的时候,如果需要查找的目录当前用户没有相关的权限,则系统提示一些错误信息.但是如果当用户的权限比较小用户又在整个操作系统内查找的话,则错误信息就会比较多,会影响用户的阅读.此时也需要让这些错误信息输入流不起作用.

Empire CMS,phome.net

  综上所述,在很多地方都需要让输入源不起作用.那么在Unix操作系统中是如何实现这个目标的呢?

  三、如何通过管道符让输入源不起作用?

  在Unix操作系统中,可以通过管道符来让某些输入源不起作用.Unix操作系统中的管道是指标准输入和标准输出的第三种源和目标.简单的说,管道符可以把标准输入流与标准输出流进行合并;或者把某个命令的标准输出流作为另外一个命令的标准输入流.而这个管道符跟其他命令结合使用的话,能够实现一些比较复杂的需求.

  如现在系统工程师想统计Oracle数据库目录下文本文件的大小,那么系统工程师就可以先切换到Oracle数据库的目录下,然后使用cat *.txt | wc –c命令.这个命令就是通过管道符把两个基本命令结合起来,让操作系统显示文件总的大小.那么这个命令具体是如何实现这个功能的呢?

  ,cat *.txt命令会把当前目录下所有txt文件进行合并.Cat命令主要用来读取文件的内容.这个命令可以同时打开多个文件.如果同时打开多个文件的话,则cat命令会把文件的内容进行合并.即把第二个文件的内容直接加入到第一个文件的后面.在中间的话不会加入任何提示符.虽然这对于阅读可能不怎么方便的,但是却最真实的反映出来了文件本身的内容,没有经过任何的修饰.

  其次管道符的作用就是把cat命令的标准输出流当作wc命令的一个标准输入流.而wc命令加上-c选项就是用来统计标准输入流的大小.所有这个命令就可以统计出Oracle目录下所有txt文件的大小,而不是统计每个文件的大小.也就是说起到了让某系输入源不起作用的目标.得到这个数值之后,系统工程师就可以通过IF判断语句或者其他命令来实现一些特定的目的.

  四、管道符的使用有哪些注意事项?

 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号