Azure CLI从表中选择选项

blpfk2vs  于 2022-12-14  发布在  其他
关注(0)|答案(3)|浏览(151)

我正在尝试在Azure CLI中获取包含数字的表输出,该命令将此作为输出

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

我现在的密码是

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

我现在得到的输出是

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

我的最终目标是,如果您选择数字1,您就选择了名称,这样我就可以稍后在脚本中使用该名称

nue99wik

nue99wik1#

对于您的问题,没有Azure CLI命令可以实现它。但您可以使用脚本来实现它。例如,您可以使用shell脚本:

#!/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

希望这对你有帮助。

lztngnrs

lztngnrs2#

您可以在过滤器中使用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

iklwldmw

iklwldmw3#

据我所知,您正在尝试创建变量,以便稍后从输出中使用。您不需要首先将其放入表中。使用相同的示例,您可以做如下操作;
gpname="$(az group list --query [0].name --output tsv)"
az group show -n $gpname

祝您好运.....

注解中的信息::

你正在寻找的是更多的Linux比Azure。我不是一个Linux CLIMaven,但她是一个基本的脚本,你可以建立在。
#!/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

希望这对你有帮助......

相关问题