【发布时间】:2021-12-30 20:01:04
【问题描述】:
我正在查询:
az aks nodepool show \ ⎈
--resource-group $RESOURCE_GROUP_NAME \
--cluster-name $CLUSTER_NAME \
--name $NODE_POOL_NAME -o table
我得到一个表名 ProvisiongState 的输出。我需要一些帮助来将该查询的结果收集到一个变量中,以便我可以对其进行检查,直到它从 UpgradingNodeImageVersion 变为 Succeeded。我正在考虑将其作为一个 shell 脚本或 Python 程序来实现。
编辑:我用这个命令来得到我需要的东西。谢谢大家的帮助!
az aks nodepool show --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME | grep "\"provisioningState\": \"Succeeded\""
【问题讨论】:
-
打印出什么?如果有密钥字符串,您可以在 shell 脚本中使用
grep进行操作。grep返回是否找到字符串的状态码。 -
@TimRoberts 用示例输出更新了主帖。谢谢。
-
为了让人们能够测试样本,您应该提供示例输出作为文本,而不是屏幕截图。我们无法将您的屏幕截图导入答案以查看它在实践中是否正确,因此这样做意味着您会得到未经测试的答案(至少,未经测试的人没有
az和使用它的先决条件)。另请参阅Why not upload images of code/errors when asking a question? -
顺便说一句,你使用
-o table而不是更容易解析的东西有什么原因吗?例如,-o json可以让jq挑选出您需要的确切数据,或者-o tsv可以使用 awk 给出一个简单的答案。 -
...您最终得到的结果可能类似于
az ... -o json | jq -r '.[].ProvisioningState',但如果没有看到az ... -o json的输出以了解它实际调用的相关字段,我无法确定。
标签: python linux shell awk grep