linux shell捕获异常,shell脚本中如何获取错误输出
shell上手中,shell命令执行,正常输出可以获得,但对于出错信息,如何获取没能解决。今天查了一天资料,算是找着了一个切换输出的办法。就是exec函数。man exec可以看到其有一些参数可以用:< fileName打开以fileName命名的文件作为标准输入为第一个命令。<< value以Value作为第一个命令的标准输入。> fileName最后一个标准结果输出覆
shell上手中,shell命令执行,正常输出可以获得,但对于出错信息,如何获取没能解决。今天查了一天资料,算是找着了一个切换输出的办法。就是exec函数。
man exec可以看到其有一些参数可以用:
< fileName
打开以fileName命名的文件作为标准输入为第一个命令。
<< value
以Value作为第一个命令的标准输入。
> fileName
最后一个标准结果输出覆盖输出到fileName文件
2> fileName
所有命令的错误输出覆盖输出到fileName文件
>& fileName最后一个标准结果输出和所有命令的错误输出覆盖输出到fileName文件
>> fileName最后一个标准结果输出追加输出到fileName文件
2>> fileName所有命令的错误输出追加输出到fileName文件
>>& fileName
最后一个标准结果输出和所有命令的错误输出追加输出到fileName文件
eg:
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作为结果可以被获取到。
更多推荐
所有评论(0)