如何将kubectl命令的输出解析为bash脚本的数组

问题描述 投票:0回答:1

我有这个kubectl命令,它给我以下输出。我需要知道如何将输出存储在数组中,因此我可以循环遍历每个输出并进一步在资源上发出gcloud命令。

kubectl get ingress test-load-balancer -o jsonpath='{.metadata.annotations.ingress\.kubernetes\.io/backends}'| jq  -r 'keys'

[
  "k8s-be-30423--12305b0f030d5a48",
  "k8s-be-31245--10023b0f030d5a48"
]

但是,现在我需要在bash脚本中为这些k8s-xx资源运行单独的命令。我尝试了以下但它没有将输出保存在数组中

read BACKEND_SERVICES<<<$(kubectl get ingress cysiv-load-balancer -o \

jsonpath='{.metadata.annotations.ingress\.kubernetes\.io/backends}'| jq -r 'keys')

先感谢您

bash kubectl
1个回答
1
投票

我假设你的密钥不包含空格。

array=($(kubectl ... | jq -r 'keys[]'))
declare -p array
© www.soinside.com 2019 - 2024. All rights reserved.