linux shell中”2>&1″含义
浏览:1591次 出处信息
执行命令是
/home/admin/demo.sh >/dev/null 2>&1 &
对于& 1 更准确的说应该是文件描述符 1,而1标识标准输出,stdout。
对于2 ,表示标准错误,stderr。
2>&1 的意思就是将标准错误重定向到标准输出。这里标准输出已经重定向到了 /dev/null。那么标准错误也会输出到/dev/null
最后一个& 是让程序在后台执行。
为何2>&1要写在后面?
command > file 2>&1
首先是command > file将标准输出重定向到file中, 2>&1 是标准错误拷贝了标准输出的行为,也就是同样被重定向到file中,最终结果就是标准输出和错误都被重定向到file中。
command 2>&1 >file
2>&1 标准错误拷贝了标准输出的行为,但此时标准输出还是在终端。>file 后输出才被重定向到file,但标准错误仍然保持在终端。
用strace可以看到:
1. command > file 2>&1
这个命令中实现重定向的关键系统调用序列是:
open(file) == 3
dup2(3,1)
dup2(1,2)
2. command 2>&1 >file
这个命令中实现重定向的关键系统调用序列是:
dup2(1,2)
open(file) == 3
dup2(3,1)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:有用的linux命令——chattr
后一篇:给Ubuntu添加Windows及Mac字体 >>
文章信息
- 作者:信海龙 来源: 博学无忧
- 标签: 标准输出
- 发布时间:2014-11-21 23:46:50
近3天十大热文
-
[837] WordPress插件开发 -- 在插件使用 -
[136] 解决 nginx 反向代理网页首尾出现神秘字 -
[56] Innodb分表太多或者表分区太多,会导致内 -
[56] 分享一个JQUERY颜色选择插件 -
[52] 如何保证一个程序在单台服务器上只有唯一实例( -
[52] 用 Jquery 模拟 select -
[52] CloudSMS:免费匿名的云短信 -
[51] jQuery性能优化指南 -
[51] 全站换域名时利用nginx和javascri -
[50] 整理了一份招PHP高级工程师的面试题