gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:45:06 33 4
gpt4 key购买 nike

这个问题在这里已经有了答案:





Pipe output and capture exit status in Bash

(15 个回答)


4年前关闭。




在通过另一个成功的命令进行管道传输后,如何从 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

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

关于shell - 管道命令输出,但保留错误代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8833396/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com