[英]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
和--output
从az 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.