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

时间:2019-04-25 03:56:11

标签: bash kubectl

我有这个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')

提前谢谢

1 个答案:

答案 0 :(得分:1)

我认为您的密钥不包含空格。

array=($(kubectl ... | jq -r 'keys[]'))
declare -p array