根据条件在 bash 中多次打印字符串

Print a string multiple times in bash based on condition

这将列出所有资源组中的所有虚拟网络。一个资源组可以有多个 vnet。在那种情况下,我需要打印每个 vnet 的资源组的值。目前我得到一对多的值作为结果

rgNames=$(az group list --subscription <sub-name> --query [].name --output tsv)
for i in $rgNames; do
    vnet="$(az network vnet list -g $i --subscription <sub-name> --query [].name --output tsv)"
    echo $i,$vnet
done

实际结果

rg1,vnet1
rg2,vnet2 vnet3 vnet4
rg3,vnet5 vnet6

预期结果

rg1,vnet1
rg2,vnet2
rg2,vnet3
rg2,vnet4
rg3,vnet5
rg3,vnet6

如果有多个vnet,需要多次打印资源组名称。

也循环遍历每个 vnet

rgNames=$(az group list --subscription <sub-name> --query [].name --output tsv)

for i in $rgNames; do
    vnets="$(az network vnet list -g $i --subscription <sub-name> --query [].name --output tsv)"

    for vnet in $vnets; do
      echo "$i,$vnet"
    done
done

此外:始终对变量加双引号以防止通配、分词等。