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

如何将kubectl命令的输出解析为bash脚本的数组,bash,kubectl,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-31

我有一个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脚本中为这些k8sxx资源运行单独的命令。我尝试了以下方法,但没有将输出保存在数组中

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

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

readbackend\u SERVICES我假设您的密钥不包含空格

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

我想说的是,我尝试了以下方法,但没有成功。read-t BACKEND_services看起来应该将命令分为两部分。首先获取jsonpath,然后:读取-t BACKEND_services将kubectl的输出添加到您的问题中。这是kubectl的输出。如果您有一种直接从kubectl获取“密钥”的方法,那么kubectl获取ingress cysiv负载平衡器-o jsonpath={.metadata.annotations.ingress\.kubernetes\.io/backends}{“k8s-be-30423--74546b0f030d5a48:“健康”,“k8s-be-31245--74546B00F030D5A48:“健康”}