Share via


從 CLI 輸出設定殼層變數

現在您已擁有 NIC 識別碼,請執行 az network nic show 以取得其資訊。 您不需要這裡的資源群組,因為資源組名包含在 Azure 資源識別碼內。

az network nic show --ids $nicId

此命令會顯示 VM 網路介面的所有資訊。 此數據報括 DNS 設定、IP 資訊、安全性設定,以及 MAC 位址。 下列查詢示範如何取得公用IP位址和子網物件標識碼。

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"
  ]
}

此命令會顯示 JSON 物件,此物件具有所擷取值的自定義金鑰 ('IP' 和 'Subnet')。 雖然這種輸出樣式可能不適用於命令行工具,但它有助於人類可讀性,並可搭配自定義腳本使用。

若要使用命令列工具,請變更 命令以移除自訂 JSON 金鑰,並將輸出當做 tsv。 命令會將 read 結果載入多個變數,以處理此輸出樣式。 由於兩個值會顯示在不同的行上,因此命令分隔符必須設定為空字串, read 而不是非換行空格符的預設值。

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

如果您不想使用 Bash read 或 PowerShell -split 命令,可以個別設定每個變數。

$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

使用公用IP物件標識碼來查閱公用IP位址,並將其儲存在殼層變數中。 子網標識碼可用來示範如何在 Azure CLI 中查詢和儲存多個值。 因此,本教學課程的其餘部分並不需要它。

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

現在您已將 VM 的 IP 位址儲存在殼層變數中。 繼續檢查它是否與您最初用來連線到 VM 的值相同。

echo $vmIpAddress