`gcloud builds list` 无法捕获变量中的命令输出

`gcloud builds list` can't capture command output in variable

我有一些工作代码遵循下面看到的模式。

FIRST_BILLING_ACCOUNT=$(gcloud beta billing accounts list --filter=open=true --format="value(name)" --limit=1)

检查输出:$FIRST_BILLING_ACCOUNT

打印我的结算帐户名称。

像这样:

REGION=$(gcloud app describe --format="value(locationId.scope())")

检查输出:$REGION

打印区域。

问题

这不起作用:

OUT=$(gcloud builds list --ongoing)

它打印输出:Listed 0 items. 并且不在 $OUT 中保存值。

其他不起作用的东西,从这里拉出来:How do I redirect output to a variable in shell?

OUT="$(gcloud builds list --ongoing)"

gcloud builds list --ongoing | read OUT

read OUT < <(gcloud builds list --ongoing)

我什至试过这个:

echo "gcloud builds list --ongoing" >> tst.sh
chmod +x tst.sh
OUT=$(./tst.sh)
$OUT

结果相同。

我想知道两件事:如何捕获此命令的输出? 为什么不同的 gcloud 命令的行为似乎不同?

我刚刚弄明白了。它打印到 STDERR 而不是 STDOUT。要捕获:

OUT=$(gcloud builds list --ongoing 2>&1)

从现在开始,我只需要在我的所有支票中使用 2>&1