数据流重定向

本文介绍了Shell中的数据流重定向概念及其用法,包括标准输入、标准输出、错误输出及特殊设备文件的使用方法,并列举了多种实际应用场景。

shell命令行操作时,默认情况下,结果会输出到屏幕上面来,造成输出信息混乱,而我们想分离不同输出,或将信息保存到文件中,数据流重定向为我们实现了这些目标。

  • 分类
    1. 标准输入(stdin):代码为0,使用<或<<;
    2. 标准输出(stdout):代码为1,使用>或>>;
    3. 编制错误输出(stderr):代码为2,使用2>或2>>;
  • 解释
    1. ‘>’:以覆盖的方法将正确(1>)或错误(2>)的数据输出到制定的文件或设备上;
    2. ‘>>’:以累加的方法将正确(1>>)或错误(2>>)的数据输出到制定的文件或设备上;
    3. ‘<’:将原本需要键盘输入的数据改由文件内容来代替;
    4. ‘<<’:代表结束输入的意思,如后面字符“eof”
  • /dev/null垃圾桶黑洞设备与特殊写法

如果提前知道错误信息会出现,那么如何将错误信息忽略掉而不显示或存储呢?

--------“2> /dev/null”,该设备可以吃掉任何导向这个设备的信息,提示:如果仅存在>时,则代码默认的代码1

如果打算将正确和错误信息都输出到同一个文件呢?

--------“> list 2>&1”或“&> list”

数据流重定向使用场景:

  1. 屏幕输出的信息很重要,而且我们需要将它保存下来的时候;
  2. 后台执行中的程序,不希望他干扰屏幕正常的输出结果时;
  3. 一些系统的例行命令(例如写在/etc/crontab中的文件)的执行结果,希望他可以保存下来时;
  4. 一些执行命令的可能已知错误信息时,想以“2>/dev/null”将它丢掉时;
  5. 错误信息与正确信息需要分别输出时;

 

转载于:https://www.cnblogs.com/qqiao/p/5906107.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值