繁体   English   中英

Bash 脚本与 Azure CLI

[英]Bash Script with Azure CLI

我是 shell 脚本的新手。 我正在尝试使用

az sig image-version list

来自 azure 的命令应该返回版本列表并将其存储到列表/数组中。 所以我可以在 for 循环中单步执行列表。

VERSIONS_LIST="$(az sig image-version list --gallery-image-definition $GALLERY_IMAGE_NAME --gallery-name $GALLERY_NAME --resource-group $RESOURCE_GROUP_NAME)`" 

但是,我不确定该命令是否返回的不仅仅是版本。 如果是这样,我怎么才能只参加 output 的一部分?

我也有显示填充列表的问题。 我相信我使用 azure cli 存储在列表中的语法是错误的。 非常感谢任何指导。

echo VERSION_LIST

我是否将列表正确存储到变量中?

您可以使用全局参数--query--outputaz sig image-version list的 output 中使用JMESPath查询版本列表,然后您可以将 output 作为变量存储在 ZD574D4BB40C84861791ZCCE6 中,就像这样

VERSIONS_LIST=$(az sig image-version list --gallery-image-definition $GALLERY_IMAGE_NAME --gallery-name $GALLERY_NAME --resource-group $RESOURCE_GROUP_NAME --query "xxx" --output tsv)

然后您可以使用命令echo $VERSIONS_LIST检查变量。 如果你想运行 for 循环,你可以这样做,

for version in $VERSIONS_LIST
do
    echo $version

done

例如,这里是一个带有 CLI 2.0 的 bash 脚本。 有关更多详细信息,请参阅此博客

#!/bin/bash
rgName=nancytest
vmlist=$(az vm list -g $rgName --query "[].name" -o tsv)

for vm in  $vmlist
do

vmLocation=$(az vm show -g $rgName -n $vm --query "location" -o tsv)
echo $vm,$vmLocation

done

有关循环示例,请参见 bash

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM