码迷,mamicode.com
首页 > 其他好文 > 详细

数据流重定向

时间:2018-07-03 23:45:49      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:file   执行   提示   shell   标准输入   rect   stdin   std   lin   

今天我们来说说数据流重定向吧,我也是刚看完这段,想来总结下: 1. 标准输入  (stdin) :代码为 0 ,使用 < 或 << 2. 标准输出  (stdout)\(standard output):代码为 1 ,使用 > 或 >> 3. 标准错误输出(stderr)\(standard error output):代码为 2 ,使用 2> 或 2>> 1> :以覆盖的方法将“正确的数据”输出到指定的文件或设备上; 1>>:以累加的方法将“正确的数据”输出到指定的文件或设备上; 2> :以覆盖的方法将“错误的数据”输出到指定的文件或设备上; 2>>:以累加的方法将“错误的数据”输出到指定的文件或设备上; 当我们在linux的shell里面执行一些指令的时候,指令执行完成后会有一些正确的或者错误的结果显示在屏幕上,以便我们去发现问题出在哪里? 比如: [root@localhost ~ 07:52 #45]$cat /etc/crontab /etc/test 由于后面那个文件是不存在的,执行完成后屏幕上会有 cat: /etc/vbirdsay: No such file or directory的提示。那么我们应该要怎么处理这种情况,让shell里只出现正确的执行结果呢? [root@localhost ~ 07:53 #45]$cat /etc/crontab /etc/test 2> /dev/null 这么操作的话在我们的屏幕上就只显示正确的执行结果了。 这里涉及到/dev/null,黑洞,为什么叫黑洞呢?顾名思义就是吞噬,你有啥不要的玩意都可以往这里头扔。是不是很强大呢。 想象一下,如果我知道错误讯息会发生,所以要将错误讯息忽略掉而不显示或储存呢? 这个时候黑洞设备 /dev/null 就很重要了!这个 /dev/null 可以吃掉任何导向这个设备的信息 这里有一种特殊的写法:2>&1 和 &> ! 2>&1 : 2为错误输出 &1 - 等效于标准输出 如:还是以上面的命令为例。 [root@localhost ~ 07:57 #46]$cat /etc/crontab /etc/test >/dev/null 2>&1 这条命令执行完成后,是没有任何输出的。标准输出1是可以省略的,这里可以看出,2>&1的意思是:标准错误输出等效于标准输出。 写到这里,小白文,希望能帮到一些人。。。

数据流重定向

标签:file   执行   提示   shell   标准输入   rect   stdin   std   lin   

原文地址:http://blog.51cto.com/13849422/2135788

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!