假设我在终端上执行以下命令:
this-command-doesnt-exist-and-closes-with-code-127 | jq ''
如果我执行echo $?
,我会得到0
结果,因为它正在检查jq
. 我想知道管道上第一个命令的退出代码。我想过像这样重定向标准错误:
this-command-doesnt-exist-and-closes-with-1 2>&1 | jq ''
if [ $? != 0 ]; then
echo "I got an error"
fi
就这样我发送了一条没有意义的消息jq
。它可以解决问题,但看起来不是正确的解决方案。如何管理获取管道上命令的错误代码?