将 Azure CLI 命令的输出存储为变量
Storing Output of Azure CLI command as variable
我需要将获取我的私有 IP 的 AZ cli 命令的输出存储为变量。
我在 bash 脚本中使用以下内容:
echo "Fetching Monitoring Server IP"
SERVER_IP=$(az vm show -n ${THIS_VM_NAME} -g ${RSC_GRP_NAME} --query privateIps -o tsv)
echo "$SERVER_IP
这似乎不起作用,因为当我回显变量时,它返回为空。
+ THIS_VM_NAME=XXXX-XX-XX-XX-XX
+ echo 'Fetching Monitoring Server IP'
Fetching Monitoring Server IP
++ az vm show -n XXXX-XX-XX-XX-XX3 -g XXXX-XX-XX-XX-XX --query privateIps -o tsv
+ SERVER_IP=
+ echo ''
如有任何指点,我将不胜感激
编辑
你 post 的命令丢失了一个获取私有 IP 的参数,你可以像这样使用带有参数 -d
或 --show-details
的命令:
az vm show -g resourceGrouName -n vmName -d
但是这个命令只是获取所有的IP,包括辅助IP。
您可以通过 shell 脚本获取每个接口的所有 VM 主 IP:
count=0
while : ; do
nic=$(az vm nic list -g resourceGroupName --vm-name vmName --query [$count].id -o tsv)
if [[ $nic == '' ]]; then
break
fi
privateIps[$count]=$(az vm nic show -g resourceGroupName --vm-name vmName --nic $nic --query ipConfigurations[0].privateIpAddress -o tsv)
let count++
done
echo ${privateIps[*]}
解决我在 Azure Cloud Shell 中的类似问题的方法是在 PowershellSERVER_IP 变量前放置一个 美元符号 =15=] 已选中。
$SERVER_IP=$(az vm show --name vmname --resource-group rgname --show-details --query [publicIps] --output tsv)
我需要将获取我的私有 IP 的 AZ cli 命令的输出存储为变量。
我在 bash 脚本中使用以下内容:
echo "Fetching Monitoring Server IP"
SERVER_IP=$(az vm show -n ${THIS_VM_NAME} -g ${RSC_GRP_NAME} --query privateIps -o tsv)
echo "$SERVER_IP
这似乎不起作用,因为当我回显变量时,它返回为空。
+ THIS_VM_NAME=XXXX-XX-XX-XX-XX
+ echo 'Fetching Monitoring Server IP'
Fetching Monitoring Server IP
++ az vm show -n XXXX-XX-XX-XX-XX3 -g XXXX-XX-XX-XX-XX --query privateIps -o tsv
+ SERVER_IP=
+ echo ''
如有任何指点,我将不胜感激
编辑
你 post 的命令丢失了一个获取私有 IP 的参数,你可以像这样使用带有参数 -d
或 --show-details
的命令:
az vm show -g resourceGrouName -n vmName -d
但是这个命令只是获取所有的IP,包括辅助IP。
您可以通过 shell 脚本获取每个接口的所有 VM 主 IP:
count=0
while : ; do
nic=$(az vm nic list -g resourceGroupName --vm-name vmName --query [$count].id -o tsv)
if [[ $nic == '' ]]; then
break
fi
privateIps[$count]=$(az vm nic show -g resourceGroupName --vm-name vmName --nic $nic --query ipConfigurations[0].privateIpAddress -o tsv)
let count++
done
echo ${privateIps[*]}
解决我在 Azure Cloud Shell 中的类似问题的方法是在 PowershellSERVER_IP 变量前放置一个 美元符号 =15=] 已选中。
$SERVER_IP=$(az vm show --name vmname --resource-group rgname --show-details --query [publicIps] --output tsv)