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其他方法.

相关文章

用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2...
#!/bin/bashcommand1&command2&wait从Shell脚本并行...
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/ph...
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如...
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexa...
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全...