注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Wei Ding blog

 
 
 

日志

 
 

将标准输出重定向到一个文件的同时并在屏幕上显示 (转载)  

2017-06-07 16:22:30|  分类: linux |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

http://blog.csdn.net/edonlii/article/details/24319561

一、标准输出+标准错误

输出标准输出和标准错误,同时保存到文件logfile

方法一: <command> 2>&1 | tee <logfile>


[root@home root]# id das 2>&1 |tee logfile
id: das: No such user
[root@home root]# cat logfile
id: das: No such user

 

注释:管道的作用为把一个进程的标准输出作为另一个进程的标准输入。2>&1是把标准错误重定向到标准输出的副本一起输出。上面的命令,把标准输出和标准错误都输出作为tee命令的标准输入,tee的作用为把标准输入的内容拷贝到文件,并输出。

方法二:<command>  2> logfile | cat - logfile


[root@home root]# id abc 2>&1 |tee logfile
id: abc: No such user
[root@home root]# cat logfile
id: abc: No such user

 

注释:cat可以带多个文件参数,同时显示多个文件的内容。
"-"
代表标准输入,logfile是管道前保存的标准错误文本。

 

二:忽略标准输出

若想忽略标准输出,只输出标准错误并保存到文件logfile 

命令如下:<command> 2>&1 >/dev/null | tee logfile


注释:1. 2>&1  将标准错误重定向到标准输出,注意,此时标准输出还没有被重定向
2. >/dev/null  
等同于1>/dev/null  /dev/null文件是一个空设备,类似于windows内的回收站,使用>/dev/null(等同于1>/dev/null)将标准输出重定向到/dev/null,即不显示标准输出的内容。所以这时的标准输出就仅变为重定向过来的标准错误了。

相反,如果两者颠倒顺序,那标准输出连同它的副本都会被重定向到/dev/null,这是一个逻辑问题。


[root@home root]# make >/dev/null 2>&1
[root@home root]# make 2>&1 >/dev/null
make: *** No targets specified and no makefile found.  Stop.

  评论这张
 
阅读(24)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017