- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
shell中IO重定向 详解及例子
原文地址:/thread-391273-1-1.html[推荐]shell中I/O重定向详解及例子![复制链接]1、基本概念??a、I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9;??b、常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关;??c、用 来改变读进的数据信道(stdin),使之从指定的档案读进;??d、用 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案;??e、0 是 的默认值,因此 与 0是一样的;同理, 与 1 是一样的;??f、在IO重定向 中,stdout 与 stderr 的管道会先准备好,才会从 stdin 读进资料;??g、管道“|”(pipe line):上一个命令的 stdout 接到下一个命令的 stdin;??h、tee 命令是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去;??i、bash(ksh)执行命令的过程:分析命令-变量求值-命令替代(``和$( ))-重定向-通配符展开-确定路径-执行命令;??j、( )??将 command group 置于 sub-shell 去执行,也称 nested sub-shell,它有一点非常重要的特性是:继承父shell的Standard input, output, and error plus any other open file descriptors。??k、exec 命令:常用来替代当前 shell 并重新启动一个 shell,换句话说,并没有启动子 shell。使用这一命令时任何现有环境都将会被清除,。exec 在对文件描述符进行操作的时候,也只有在这时,exec 不会覆盖你当前的 shell 环境。2、基本IO??cmd file? ?? ?? ?? ?? ?? ?? ?? ?把 stdout 重定向到 file 文件中??cmd file? ?? ?? ?? ?? ?? ?? ?? ?把 stdout 重定向到 file 文件中(追加)??cmd 1 fiel? ?? ?? ?? ?? ?? ?? ?? ?把 stdout 重定向到 file 文件中??cmd file 21? ?? ?? ?? ?? ? 把 stdout 和 stderr 一起重定向到 file 文件中??cmd 2 file? ?? ?? ?? ?? ?? ?? ?? ?把 stderr 重定向到 file 文件中??cmd 2 file? ?? ?? ?? ?? ?? ?? ?? ?把 stderr 重定向到 file 文件中(追加)??cmd file 21? ?? ?? ?? ?? ? 把 stderr 和 stderr 一起重定向到 file 文件中??cmd file file2? ?? ?? ?? ?? ? cmd 命令以 file 文件作为 stdin,以 file2 文件作为 stdout??cat file? ?? ?? ?? ?? ?? ?? ?? ?? ???以读写的方式打开 file??cmd file? ?? ?? ?? ?? ?? ?? ?? ?cmd 命令以 file 文件作为 stdin??cmd delimiter? ?? ?? ?? ?? ? Here document,从 stdin 中读入,直至遇到delimiter 分界符3、进阶IO??n? ?? ?? ?? ?? ? 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出??n? ?? ?? ?? ?? ? 标准输入复制自文件描述符 n??-? ?? ?? ?? ?? ? 关闭标准输入(键盘)??-? ?? ?? ?? ?? ? 关闭标准输出??n-? ?? ?? ?? ?? ?表示将 n 号输入关闭??n-? ?? ?? ?? ?? ?表示将 n 号输出关闭上述所有形式都可以前导一个数字,此时建立的文件描述符由这个数字指定而不是缺省的 0 或 1。如:??... 2file? ?? ???运行一个命令并把错误输出(文件描述符 2)定向到 file。??... 21? ?? ?? ?? ?? ? 运行一个命令并把它的标准输出和输出合并。(严格的说是通过复制文件描述符 1 来建立文件描述符 2 ,但效果通常是合并了两个流。)??21说明:21 也就是 FD2=FD1 ,这里并不是说FD2 的值 等于FD1的值,因为 是改变送出的数据信道,通俗的说是:把stderr并到stdout。??但使用类似 cmd 13 这样的形式时,原理相同,但往往
文档评论(0)