关于2>&1重定向的详细解释

在POSIX shell中,命令的结果可以通过%>的形式来定义,其中%表示文件描述符:1为标准输出stdout、2为标准错误stderr。系统默认%值是1,也就是1>,而1>可以简写为>,也就是默认为>。 stdout和stderr的默认目标是终端,比如:


#xxxxx

-bash: xxxxx: command not found

 


错误信息显示在终端上,而对于telnet等就是虚拟终端。


(1)输出重定向到文件file,终端上只能看到标准错误:


#./run.sh >file

#./run.sh 1>file

#more file

aaa

bbb

ccc

(2)错误重定向到文件file,终端上只能看到标准输出:


#./run.sh 2>file

#more file

./run.sh: line 10: /root/t.sh: 没有那个文件或目录

(3)标准输出和标准错误都重定向到file,终端上看不到任何信息: #./run.sh >file 2>&1 (等同于#./run.sh 1>a1 2>&1)


#more file aaa bbb ccc

./run.sh: line 10: /root/t.sh: 没有那个文件或目录

其中&的意思,可以看成是“和...相同”的意思。本例中就是2>和1>一样,都输出到file中。


(4)一个特别的例子:


#./run.sh 2>&1 >file

可以解释为2>和1>一样,因为1>是系统默认输出到终端的,所以标准错误也输出到终端,而系统把标准输出重定向到文件file。


#more file 

aaa 

bbb 

ccc 



链接:http://toutiao.com/a6280391676880273665/


转载于:https://my.oschina.net/data99/blog/669444

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值