gpt4 book ai didi

Bash 进程替换和退出代码

转载 作者:行者123 更新时间:2023-11-29 09:00:17 25 4
gpt4 key购买 nike

我想转以下:

git status --short && (git status --short | xargs -Istr test -z str)

这让我得到了将输出镜像到 stdout 并对结果进行零长度检查使其更接近于以下内容的期望结果:

git status --short |三通 >(xargs -Istr 测试 -z str)

不幸的是,它返回了 tee 的退出代码(始终为零)。

有什么方法可以优雅地获取替代进程的退出代码吗?

[编辑]

我现在使用以下命令,它可以防止两次运行相同的命令,但似乎需要更好的东西:

OUT=$(git status --short) && echo "${OUT}"&& test -z "${OUT}"

最佳答案

看这里:

  $ echo xxx | tee >(xargs test -n); echo $?xxx0  $ echo xxx | tee >(xargs test -z); echo $?xxx0

然后看这里:

  $echo xxx | tee >(xargs test -z; echo  "${PIPESTATUS[*]}")xxx123  $echo xxx | tee >(xargs test -n; echo  "${PIPESTATUS[*]}")xxx0

是吗?

另见 Pipe status after command substitution

关于Bash 进程替换和退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7586589/

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