shell – 管道命令输出,但保留错误代码

前端之家收集整理的这篇文章主要介绍了shell – 管道命令输出,但保留错误代码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我通过另一个成功的命令管道之后,如何从unix命令行应用程序获取正确的返回码?

详情如下:

$tar -cEvhf - -I ${sh_tar_inputlist} | gzip -5 -c > ${sh_tar_file}  --  when only the tar command fails $?=0
$echo $?
0

而且,我想看到的是:

$tar -cEvhf - -I ${sh_tar_inputlist} 2>${sh_tar_error_file} | gzip -5 -c > ${sh_tar_file}
$echo $?
1

有谁知道如何完成这个?

使用${PIPESTATUS [0]}获取管道中第一个命令的退出状态.

详情请参阅http://tldp.org/LDP/abs/html/internalvariables.html#PIPESTATUSREF

如果您的shell不支持$PIPESTATUS,请参阅http://cfajohnson.com/shell/cus-faq-2.html其他方法.

猜你在找的Bash相关文章