Как разобрать вывод команды kubectl в массив для сценария bash - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть эта команда 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"
]

Однако теперь мне нужно запустить отдельные команды для этих ресурсов k8s-xx внутри скрипта bash.Я попробовал следующее, но он не сохраняет вывод в массиве

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

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

Заранее спасибо

1 Ответ

1 голос
/ 25 апреля 2019

Я предполагаю, что ваши ключи не содержат пробелов.

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