Azure CLI从表中选择一个选项

Azure CLI从表中选择一个选项,azure,azure-cli,azure-cli2,Azure,Azure Cli,Azure Cli2,我正在尝试获取Azure CLI中带有数字的表输出,该命令将此作为输出 Number Location Name ---------- ----------- ------------- 1 somewhere ResourceGroup1 2 somewhere ResourceGroup2 我现在掌握的代码是 az group list --query '[].{location:location, name:nam

我正在尝试获取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
我现在得到的结果是

az group list --query '[].{location:location, name:name}'
Location     Name
----------  ---------------
somewhere    ResourceGroup1
somewhere    ResourceGroup2

我的最终目标是,如果选择数字1,则选择名称,以便稍后在脚本中使用该名称。据我所知,您正试图从输出中创建变量以供稍后使用。你不需要先把它放在桌子上。用你们的例子,你们可以做如下的事情

gpname=$az组列表-查询[0]。名称-输出tsv

az团体秀-n$gpname

祝你好运

评论中的信息::


你想要的更多的是Linux而不是Azure。我不是LinuxCLI专家,但她是一个基本脚本,您可以在此基础上构建

!/bin/bash

gpnames=$az组列表-查询[]。名称-输出tsv

PS3='选择一个数字:'

在$gpnames中选择gpname

az团体秀-n$gpname

完成


希望这有助于……

据我所知,您正试图从输出中创建变量以供以后使用。你不需要先把它放在桌子上。用你们的例子,你们可以做如下的事情

gpname=$az组列表-查询[0]。名称-输出tsv

az团体秀-n$gpname

祝你好运

评论中的信息::


你想要的更多的是Linux而不是Azure。我不是LinuxCLI专家,但她是一个基本脚本,您可以在此基础上构建

!/bin/bash

gpnames=$az组列表-查询[]。名称-输出tsv

PS3='选择一个数字:'

在$gpnames中选择gpname

az团体秀-n$gpname

完成


希望这有助于……

对于您的问题,没有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 

希望这会有所帮助。

对于您的问题,没有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 
希望这会有所帮助。

您可以在筛选器中使用contains表达式jmespath来筛选结果:

filter=resource_group_name
filterExpression="[?contains(name, '$filter')].name"
az group list --query "$filterExpression" -o tsv
与现有答案相比,这是一个更好的方法

更多阅读:

您可以在筛选器中使用包含表达式jmespath来筛选结果:

filter=resource_group_name
filterExpression="[?contains(name, '$filter')].name"
az group list --query "$filterExpression" -o tsv
与现有答案相比,这是一个更好的方法

更多阅读:

我确实试图从资源组名称中创建一个变量,但要做到这一点,您需要能够首先选择on,因为在我的情况下,我将处理大量的资源组,您需要的更多是Linux而不是Azure。我不是Linux CLI专家,但她是一个基本脚本,您可以在此基础上进行构建/bin/bash gpnames=$az group list-query[].name-output tsv PS3='Select A number:'在$gpnames中选择gpname做az group show-n$gpname完成希望这有帮助……这确实是我需要的输出!不幸的是,我还没有在我的机器上工作。如果这确实是我需要的解决方案,我将发送powershell代码并接受您的回复!我确实在尝试从资源组名称中创建一个变量,但要做到这一点,您需要能够首先选择on,因为在我的情况下,我将处理大量的资源组,您需要的更多是Linux而不是Azure。我不是Linux CLI专家,但她是一个基本脚本,您可以在此基础上进行构建/bin/bash gpnames=$az group list-query[].name-output tsv PS3='Select A number:'在$gpnames中选择gpname做az group show-n$gpname完成希望这有帮助……这确实是我需要的输出!不幸的是,我还没有在我的机器上工作。如果这确实是我需要的解决方案,我将发送powershell代码并接受您的回复!我想我明白你在这里想做什么,但不知何故,我无法让这个在我的机器上工作,请尝试azure cloud shell。这只适用于linux,而不适用于windows。在windows上,您可以使用PowerShell不幸的是,我在azure云外壳中没有得到任何结果。您从云外壳中的az组列表中获得任何输出吗?如果您这样做-更改过滤器以匹配其中一个资源组的名称,并且应该可以正常工作,这是一个您应该基于的示例:best of luckI think i get you Three you Three,但不知何故,我无法在我的机器上使用此过滤器,请尝试azure cloud shell。这只适用于linux,而不适用于windows。在windows上,您可以使用PowerShell不幸的是,我在azure云外壳中没有得到任何结果。您从云外壳中的az组列表中获得任何输出吗?如果您这样做-更改筛选器以匹配其中一个资源组的名称,并且它应该可以正常工作,那么这就是您应该建立的一个示例:祝您好运