Azure CLI выбирает вариант из таблицы - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь получить вывод таблицы с числами в интерфейсе командной строки Azure, который выдает это в качестве вывода

Number      Location     Name
----------  -----------  -------------
1           somewhere    ResourceGroup1
2           somewhere    ResourceGroup2

Код, который у меня сейчас есть,

az group list --query '[].{location:location, name:name}'

Вывод, который я сейчас получаю,

Location     Name
----------  ---------------
somewhere    ResourceGroup1
somewhere    ResourceGroup2

Моя конечная цель состоит в том, чтобы, если вы выберете число 1, вы выберете имя, чтобы я мог использовать его позже в сценарии

Ответы [ 3 ]

0 голосов
/ 01 ноября 2018

Для вашей проблемы нет команды Azure CLI, которая могла бы достичь этого. Но вы можете использовать скрипт, чтобы он сбылся. Например, вы можете использовать скрипт оболочки:

#!/bin/bash

az group list --query '[].{location: location, name: name}' -o table >> output.txt

# This command just add the line number inside the file, it's optional.
cat -n output.txt >> result.txt

# you can just get the group name with a specific line, the same result with output.txt
awk '{if (NR == line) print $3}' result.txt 

Надеюсь, это будет полезно.

0 голосов
/ 01 ноября 2018

Вы можете использовать contains выражение (jmespath) в фильтре для фильтрации результатов:

filter=resource_group_name
filterExpression="[?contains(name, '$filter')].name"
az group list --query "$filterExpression" -o tsv

, что намного лучше по сравнению с уже существующими ответами.

больше чтения:
http://jmespath.org/specification.html#filterexpressions
http://jmespath.org/specification.html#built-in-functions

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

Из того, что я понимаю, вы пытаетесь создать переменную для последующего использования из вывода. Вам не нужно сначала положить его в таблицу. Используя тот же самый пример, вы можете сделать что-то вроде ниже;

gpname="$(az group list --query [0].name --output tsv)"

az group show -n $gpname

Imgur

Удачи .....

Информация в комментариях ::

То, что вы ищете, это больше Linux, чем Azure. Я не эксперт по Linux CLI, но она - базовый скрипт, на котором вы можете строить.

#!/bin/bash

gpnames="$(az group list --query [].name --output tsv)"

PS3='Select A number: '

select gpname in $gpnames

do

az group show -n $gpname

Done

Imgur

Надеюсь, это поможет ......

...