微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐