Невозможно передать массив с выходом az - PullRequest
0 голосов
/ 28 октября 2019

Я запрашиваю список всех имен групп ресурсов в моей подписке Azure. Это нормально:

az group list --subscription "${subscription}" --output table | awk '{print $1}'

Тогда мне нужно иметь этот список в массиве в bash, но я получаю синтаксическую ошибку:

Этот список перечисляет их,но длина массива равна 0:

#!/bin/bash
subscription="$*"
#Get the Resource Groups names
rg_array= az group list --subscription "${subscription}" --output table | awk '{print $1}'
echo "${#rg_array[@]}"

Если я использую скобки, я получаю синтаксическую ошибку:

#!/bin/bash
subscription="$*"
#Get the Resource Groups names
rg_array= (az group list --subscription "${subscription}" --output table | awk '{print $1}')
echo "${#rg_array[@]}"

...

test.sh: line 8: syntax error near unexpected token `('
test.sh: line 8: 'rg_array= (az group list --subscription "${subscription}" --output table | awk '{print $1}')'

1 Ответ

0 голосов
/ 31 октября 2019

Это должно работать:

foo=$((az group list --subscription "Your Subscription" --output table | awk '{print $1}' | awk '{if(NR>2)print}' ) | tr '\r\n' ' ')

IFS=' ' read -r -a bar <<< $foo

# Access individual elements
echo "${bar[0]}"

Затем вы можете перебирать массив для доступа к отдельным элементам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...