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

脚本重定向输出【错误、正确】——分析service脚本中用到的语法

时间:2015-07-12 23:15:18      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:

<1>

>&2 1>&2 也就是把结果输出到和标准错误一样之前如果有定义标准错误重定向到某log文件,那么标准输出也重定向到这个log文件
如:ls 2>a1 >&2 (等同 ls >a1 2>&1)
把标准输出和标准错误都重定向到a1,终端上看不到任何信息。

第一种情况:标准正确输出(有>&2)====》

[root@slave1 test]# ls 2>a2>&2           等同于     #ls  >a2

[root@slave1 test]# ls
a1 a2 core txt
[root@slave1 test]# cat a2     //ls输出的是标准正确输出,(2>a2)之前如果有定义标准错误重定向到某log文件,那么标准输出也重定向到这个log文件(>&2)
a1
a2
core
txt

----------------------------------------------------------------------------------------------------------------------------

第二种情况:标准正确输出(无>&2)====》

[root@slave1 test]# ls 2>a3
a1 a2 a3 core txt
[root@slave1 test]# ls
a1 a2 a3 core txt
[root@slave1 test]# cat a3

----------------------------------------------------------------------------------------------------------------------------

第三种情况:标准错误输出(>&2)====》

[root@slave1 test]# ls
core txt
[root@slave1 test]# ls sdfji 2>a1 >&2
[root@slave1 test]# ls
a1 core txt
[root@slave1 test]# cat a1
ls: cannot access sdfji: No such file or directory          //2即标准错误输出.

第四种情况:

[root@slave1 test]# ls >a2 >&2         //有>&2则正确输出不会重定向到文件.
a1 a2 core txt

第五种情况:

[root@slave1 test]# ls &>a2 >&2           //这个情况和第1种情况相同(在是标准错误输出时),(在是标准正确输出时)和第四种情况相同.
[root@slave1 test]# ls
a1 a2 core txt
[root@slave1 test]# cat a2
a1
a2
core
txt

----------------------------------------------------------------------------------------------------------------------------

总结:加上>&2 表示之前如果是"标准错误重定向"到某log文件,那么"标准正确输出"也重定向到这个log文件;如果是"标准正确重定向"到某文件,则不会重定向到这个log文件,“标准正确输出”会正常输出.          //即之前是错误的,现在正确也记录到里面;之前是正确的,现在也正确输出.

 

代码示例请参考下一篇《service xx status》之service脚本解析

脚本重定向输出【错误、正确】——分析service脚本中用到的语法

标签:

原文地址:http://www.cnblogs.com/itcomputer/p/4641645.html

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