复重定向与管道汇总.ppt

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
P a n 智能信息处理研究中心(RCIIP) 重定向和管道 * Unix设计准则 每个程序只完成一件事情 当需要新的工具时,最好是对现有工具进行组合 长长的ls输出 * Unix准则的得失 相似的工具很多 工具功能满足不了需求 基于文本的工具无法处理多媒体 * 1、在Unix系统下需要编译一个比较大的程序,估计要20分钟。在编译过程中可能会出现一些警告或者错误信息。系统工程师不可能这二十分钟都盯着 屏幕看。为此系统工程师希望shell能够把这这些编译过程中出现的警告或者错误信息能够保存在一个文件中,以供系统工程师或者程序开发人员后续查询所 用。   2、在开发程序的时,有时候是根据代码的行数来收费的,在Unix系统中开发应用程序也是如此。为此系统工程师也希望能够有工具能够方便的来统计某个程序文件的行数。   3、有时候系统管理员可能希望能够把几个文本文件合并起来。虽然通过复制、粘贴可以实现类似的功能。但是当需要被合并的文件比较多的时候,通过赋值粘贴来实现合并的目的,并不是很好的处理方法。等等。 * 重定向输出 用符号将命令输出写到文件 Dmesg file(覆盖式) 防止覆盖 set –o noclobber (设置) set +o noclobber (取消) 强制覆盖 Dmesg |file Dmesg file(追加式) * 重定向输入 使用 操作符从文件重定向 stdin Sort names Sort rawdata report * 文件描述符、标准错误 Unix中每个输入、输出源都由一个数字描述—文件描述符。 三种系统文件描述符:0(输入)、1(输出)、2(错误) 标准的重定向格式: command 文件描述符 定向符 filename n 原来是输出到文件描述符 n,被重定向到文件filename。 以输入为例 sort 0rawdata sort rawdata 两者效用一样 P316 * Sort 2errors Sort 0rawdata 1results 2 errors * 组合标准输出、错误 语法: Command x outfile yx 将一种类型的输出重定向到一个文件,然后再将另一种类型的输出重定向到同一位置。 执行顺序:自左向右 Sort 1output 21 Sort 21 1output * 组合标准输出、错误 * 抛弃输出 有时候可能想要完全忽略标准输出或标准错误,可以使用 /dev/null 忽略输出 Ls /dev/null * 抛弃输出 Update /dev/null 下面举例说明: #cat std.sh #!/bin/sh echo “stdout” echo “stderr” 2 #/bin/sh std.sh 21 /dev/null stderr #/bin/sh std.sh /dev/null 21 第一条命令的输出结果是stderr,因为stdout和stderr合并后一同重定向到/dev/null,但stderr并未被清除,因此仍将在屏幕 中显示出来;第二条命令无输出,因为当stdout重定向至/dev/null后,stderr又重定向到了stdout,这样stderr也被输出到了 /dev/null。 * 管道线 一个程序的标准输出可以自动发往另外一个程序的标准输入 Cat file1 file2 | sort Cal 2008 | less 使用〉无效 * 管道线分流 输入保存并输出 管道线分流命令: tee [-a] file… 例: Cat file1 file2 | sort 1、Cat file1 file2 | tee d1 | sort 2、Cat file1 file2 | tee d1 d2 | sort 3、Cat file1 file2 | tee -a d1 | sort d1末尾追加文件 * 管道和重定向区别 左边的命令应该有标准输出 | 右边的命令应该接受标准输入 左边的命令应该有标准输出 右边只能是文件 左边的命令应该需要标准输入 右边只能是文件 * 条件执行 前一条命令成功执行的条件下执行另一条命令 语法:command1 command2 grep root a sort a contact 前一条命令失败时执行另一条命令 语法:command1 || command2 * 重定向符号 重置I/O及错误 21重定向错误输出 n 将输出从文件描述符 n 重定向到文件。 P323表 * P a n 智能信息处理研究中心(RCIIP) *

文档评论(0)

1112111 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档