`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
。
我有一些工作代码遵循下面看到的模式。
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
。