Bash的输入输出重定向

Bash的输入输出重定向
导读:
  使用Bash可以方便的用<和>实现输出输入的重定向,本文讨论重定向的一些细节和技巧。本文介绍部分是对Bash Quick Reference相关内容的翻译。
  基础知识
  文件描述符(File Descriptor),用一个数字(通常为0-9)来表示一个文件。常用的文件描述符如下:
  文件描述符 名称 常用缩写 默认值
  0 标准输入 stdin 键盘
  1 标准输出 stdout 屏幕
  2 标准错误输出 stderr 屏幕
  我们在简单地用&lt;或&gt;时,相当于使用 0&lt; 或 1&gt;(下面会详细介绍)。
  管道“|”(pipe line),把上一个命令的 stdout 接到下一个命令的 stdin;
  tee 命令的作用是在不影响原本 I/O 的情况下,将 stdout 复制一份到档案去;
  简单重定向
  cmd &gt;file
  把cmd命令的输出重定向到文件file中。如果file已经存在,则清空原有文件,使用bash的noclobber选项可以防止覆盖原有文件。
  cmd &gt;&gt;file
  把cmd命令的输出重定向到文件file中,如果file已经存在,则把信息加在原有文件后面。
  cmd   使cmd命令从file读入
  cmd &lt;
  从命令行读取输入,直到一个与text相同的行结束。除非使用引号把输入括起来,此模式将对输入内容进行shell变量替换。如果使用 &lt;&lt;- ,则会忽略接下来输入行首的tab,结束行也可以是一堆tab再加上一个与text相同的内容,可以参考后面的例子。
  cmd &lt;&lt;
  把word(而不是文件word)和后面的换行作为输入提供给cmd。
  cmd &lt;&gt;file
  以读写模式把文件file重定向到输入,文件file不会被破坏。仅当应用程序利用了这一特性时,它才是有意义的。
  cmd &gt;| file
  功能同&gt;,但即便在设置了noclobber时也会覆盖file文件,注意用的是|而非一些书中说的!,目前仅在csh中仍沿用&gt;!实现这一功能。
  使用文件描述符的重定向
  使用文件描述符的重定向都使用了&符号。
  cmd &gt;&amp;n 把输出送到文件描述符n
  cmd m&gt;&amp;n 把输出 到文件符m的信息重定向到文件描述符n
  cmd &gt;&amp;- 关闭标准输出
  cmd &lt;&amp;n 输入来自文件描述符n &lt;br &gt;  cmd m&lt;&amp;n m来自文件描述各个n
  cmd &lt;&amp;- 关闭标准输入
  cmd &lt;&amp;n- 移动输入文件描述符n而非复制它。(需要解释)
  cmd &gt;&amp;n- 移动输出文件描述符 n而非复制它。(需要解释)
  重定向的组合应用
  cmd 2&gt;file 把文件描述符2重定向到file,即把错误输出存到file中。
  cmd &gt;file 2&gt;&amp;1 把标准错误重定向到标准输出,再重定向到file,即stderr和stdout都被输出到file中
  cmd &amp;&gt;file 功能与上一个相同,更为简便的写法。
  cmd &gt;&amp;file 功能仍与上一个相同。
  cmd &gt;f1 2&gt;f2 把stdout重定向到f1,而把stderr重定向到f2
  tee files 把stdout原样输出的同时,复制一份到files中。
  tee files 把stderr和stdout都输出到files中,同时输出到屏幕。

本文转自
http://www.linux-wiki.cn/index.php/Bash%E7%9A%84%E8%BE%93%E5%85%A5%E8%BE%93%E5%87%BA%E9%87%8D%E5%AE%9A%E5%90%91

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值