假设我在 unix shell 中执行此操作

$ some-script.sh | grep mytext

$ echo $?

这会给我 grep 的退出代码

但是我怎样才能得到 some-script.sh 的退出代码

编辑

假设管道操作是不可变的。即,我无法将其分解并单独运行这两个命令

最佳答案

有多种解决方案,这取决于您想要做什么。

最简单易懂的方法是将输出发送到一个文件,然后在保存退出代码后对其进行 grep:

tmpfile=$(mktemp)
./some-script.sh > $tmpfile
retval=$?
grep mytext $tmpfile
rm tmpfile

关于unix shell,使用管道子获取退出代码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2851622/

10-13 07:20