将带有空格的json数组传递到bash脚本以进行az cli标签

问题描述 投票:0回答:1

我有一个如下所示的bash脚本,并将标记正确传递给包含空格的az cli。

RESOURCE_GROUP_NAME=$1
LOCATION=$2
TAGS_INPUT_ARGUMENT=$3 # This TAGS_INPUT_ARGUMENT needs to finally look like the TAGS below.

echo 'TAGS_INPUT_ARGUMENT:' $TAGS_INPUT_ARGUMENT

# HARD CODED TAGS that Work
TAGS=("owner=Firstname Lastname" "application=cool-name")
echo 'TAGS:' "${TAGS[@]}"

az group create \
--name $RESOURCE_GROUP_NAME \
--location $LOCATION \
--tags "${TAGS[@]}"

我在将TAGS传递到脚本时遇到问题。即>

export TAGS='["owner=Firstname Lastname","application=cool-name"]'
bash ./entrypoint.sh rg-lionking eastus2  "${TAGS}"    

输出:

TAGS_INPUT_ARGUMENT: ["owner=Firstname Lastname","application=cool-name"]
TAGS: owner=Firstname Lastname application=cool-name
{
  "id": "/subscriptions/**REDACTED**/resourceGroups/rg-lionking",
  "location": "eastus2",
  "managedBy": null,
  "name": "rg-lionking",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": {
    "application": "cool-name",
    "owner": "Firstname Lastname"
  },
  "type": "Microsoft.Resources/resourceGroups"
}

鉴于我可以使TAGS处于良好状态,我该怎么做才能以json格式传递相同的内容,并使它作为az组的最终参数创建cli起作用?

我的jp知识几乎为零,所以我猜答案就在那儿。

我有一个如下所示的bash脚本,并将标记正确传递给包含空格的az cli。 RESOURCE_GROUP_NAME = $ 1位置= $ 2 TAGS_INPUT_ARGUMENT = $ 3#此TAGS_INPUT_ARGUMENT ...

json bash az
1个回答
0
投票

等效于在命令行上扩展数组是传递多个单独的参数

© www.soinside.com 2019 - 2024. All rights reserved.