Share via


Shell-variabelen instellen vanuit CLI-uitvoer

Nu u de id van de NIC hebt, voert u az network nic show uit om de informatie ervan op te halen. U hebt hier geen resourcegroep nodig, omdat de naam van de resourcegroep zich in de Azure-resource-id bevindt.

az network nic show --ids $nicId

Deze opdracht toont alle informatie van de netwerkinterface van de VM. Tot deze informatie behoren DNS-instellingen, IP-informatie, beveiligingsinstellingen en het MAC-adres. De volgende query laat zien hoe u de openbare IP-adres- en subnetobject-id's ophaalt.

az network nic show --ids $nicId \
  --query '{IP:ipConfigurations[].publicIPAddress.id, Subnet:ipConfigurations[].subnet.id}' \
  -o json
{
  "IP": [
    "/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/publicIPAddresses/TutorialVM1PublicIP"
  ],
  "Subnet": [
    "/subscriptions/.../resourceGroups/TutorialResources/providers/Microsoft.Network/virtualNetworks/TutorialVM1VNET/subnets/TutorialVM1Subnet"
  ]
}

In deze opdracht wordt een JSON-object weergegeven met aangepaste sleutels (IP en Subnet) die voor de uitgepakte waarden staan. Hoewel de stijl van deze uitvoer mogelijk niet handig is voor opdrachtregelprogramma's, is de uitvoer wel leesbaarder voor mensen en kan deze worden gebruikt met aangepaste scripts.

Als u opdrachtregelprogramma's wilt gebruiken, wijzigt u de opdracht zodanig dat de aangepaste JSON-sleutel en -uitvoer als tsv worden verwijderd. De read opdracht verwerkt deze uitvoerstijl door resultaten in meerdere variabelen te laden. Omdat er twee waarden worden weergegeven op afzonderlijke regels, moet het read opdrachtscheidingsteken worden ingesteld op de lege tekenreeks in plaats van de standaardwaarde van niet-nieuwe regelspaties.

read -d '' ipId subnetId <<< $(az network nic show \
  --ids $nicId \
  --query '[ipConfigurations[].publicIPAddress.id, ipConfigurations[].subnet.id]' \
  -o tsv)

Als u de Bash read - of PowerShell-opdracht -split niet wilt gebruiken, kunt u elke variabele afzonderlijk instellen.

$ipId = az network nic show --ids $nicId --query '[ipConfigurations[].publicIPAddress.id]' -o tsv
$subnetId = az network nic show --ids $nicId --query '[ipConfigurations[].subnet.id]' -o tsv

Gebruik de id van het openbare IP-object om het openbare IP-adres op te zoeken en op te slaan in een shellvariabele. De subnet-id is gebruikt om te laten zien hoe u meerdere waarden opvraagt en opslaat in de Azure CLI. Daarom is het niet nodig voor de rest van de zelfstudie.

vmIpAddress=$(az network public-ip show --ids $ipId \
  --query ipAddress \
  -o tsv)

U hebt nu het IP-adres van de VM opgeslagen in een shell-variabele. Ga verder en controleer of het dezelfde waarde is die u hebt gebruikt om in eerste instantie verbinding te maken met de virtuele machine.

echo $vmIpAddress