【发布时间】:2021-12-26 02:31:33
【问题描述】:
如果我在 GitHub 上使用hub 命令创建拉取请求并收到错误消息,则会输出四行:
hub pull-request -p -b MyOrg:main -h Test_Branch -m "testing"
输出:
Everything up-to-date
Branch 'Test_Branch' set up to track remote branch 'Test_Branch' from 'MyOrg'.
Error creating pull request: Unprocessable Entity (HTTP 422)
A pull request already exists for MyOrg:Test_Branch.
现在,如果我尝试以这种方式存储输出:
output=$(hub pull-request -p -b MyOrg:main -h Test_Branch -m "testing")
然后奇怪的是只有第二行存储在output。
如果我打印它,我只会看到第二行:
echo $output
结果:
Branch 'Test_Branch' set up to track remote branch 'Test_Branch' from 'MyOrg'.
我的总体目标是捕获输出而不是将其打印给用户。我只想向他们展示一条简单的错误消息(而不是四行输出)。理想情况下,我只想在Error creating pull request 上执行grep 并在此基础上打印专门的错误消息。
谁能告诉我怎么做?谢谢。
【问题讨论】:
-
我猜其他行会转到 STDERR?要同时保留 STDOUT 和 STDERR,请尝试在末尾添加
2>&1:output=$(hub ..."testing" 2>&1) -
@mivk 解决了这个问题!非常感谢!如果您将其写为答案,我会将其标记为答案。