Azure CLI echo命令无响应

时间:2017-12-13 18:27:52

标签: azure azure-storage azure-cli

我希望将我的连接字符串存储在以下变量中:

connectionString= az storage account show-connection-string -n $storageAccount -g $resourceGroup --query connectionString -o tsv

当我执行上述操作时,我在响应中获得完整的连接字符串。但是,当我输入时:

echo $connectionString

......我的回复是空白的。该变量未存储。关于还有什么可以尝试的任何建议?

2 个答案:

答案 0 :(得分:1)

您可以使用command substitution来捕获变量中的输出:

connectionString=$(az storage account show-connection-string -n $storageAccount -g $resourceGroup --query connectionString -o tsv)

如果您需要保留多行的输出,请联系我。当Azure CLI以JSON格式返回值时,您可能希望使用稍微不同的格式输出到stdout。

考虑这个例子:

varResourceGroup=$(az group show -n $resourceGroup)

使用与示例中相同的命令输出到stdout将产生一行:

echo $varResourceGroup 
{ "id": "/subscriptions/<subscription_id>/resourceGroups/<resourceGroup_name>", "location": "westeurope", "managedBy": null, "name": "<resourceGroup_name>", "properties": { "provisioningState": "Succeeded" }, "tags": null }

如果您使用的格式不同,则会保留换行符:

echo "$varResourceGroup"
{
  "id": "/subscriptions/<subscription_id>/resourceGroups/<resourceGroup_name>",
  "location": "westeurope",
  "managedBy": null,
  "name": "<resourceGroup_name>",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

答案 1 :(得分:1)

正如Holger所说,我们可以使用此脚本来定义变量:

connectionString=$(az storage account show-connection-string -n $storageAccount -g $resourceGroup --query connectionString -o tsv)

此外,我们可以使用这种方式来定义此变量,如下所示:

[root@jasoncli@jasonye ~]# connectionstring=`az storage account show-connection-string -n jasondisk3 -g jasonauto --query connectionString -o tsv`
[root@jasoncli@jasonye ~]# echo $connectionstring
DefaultEndpointsProtocol=https;EndpointSuffix=core.windows.net;AccountName=jasondisk3;AccountKey=m+kQwLuQZiI3LMoMTyAI8KxxxxD+ZaT9HUL3Agxxxxqul4s8fAIHGPMTD/AG2j+TPHBpttq5hXRmTaQ==

希望这有帮助。