linuxshell捕获异常,shell脚本中如何获取错误输出
shell上⼿中,shell命令执⾏,正常输出可以获得,但对于出错信息,如何获取没能解决。今天查了⼀天资料,算是着了⼀个切换输出的办法。就是exec函数。
man exec可以看到其有⼀些参数可以⽤:
< fileName
打开以fileName命名的⽂件作为标准输⼊为第⼀个命令。
<< value
以Value作为第⼀个命令的标准输⼊。
> fileName
最后⼀个标准结果输出覆盖输出到fileName⽂件
2> fileName
所有命令的错误输出覆盖输出到fileName⽂件
>& fileName最后⼀个标准结果输出和所有命令的错误输出覆盖输出到fileName⽂件
>> fileName最后⼀个标准结果输出追加输出到fileName⽂件
2>> fileName所有命令的错误输出追加输出到fileName⽂件
>>& fileName
最后⼀个标准结果输出和所有命令的错误输出追加输出到fileName⽂件
eg:linuxshell脚本怎么运行
hadoop fs -ls XXX
如果执⾏该命令,假定XXX是不存在的,那么结果为:
1、16/05/28 19:41:45 INFO hdfs.PeerCache: SocketCache
disabled.
2、ls: `aaa': No such file or directory
1、不是结果,是提⽰,2是错误信息。如果正常情况下获取输出,1是获取不到的,2是出错信息也获取不到。
但如果XXX存在,那么2就是⽂件的⼤⼩信息等,作为结果是可以获取到的。
设置exec 2>>
file1,那么在出错情况下,上述1、2都会追加到file1的末尾,如果执⾏成功,1追加到file1末尾,正确的2作为结果可以被获取到。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论