如何将bash变量读入json

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

我需要标记我的ec2实例,我想通过bash变量传递键和值。

#!/bin/bash
image=""
instancetype=t2.small
key1=name
value1=test

key2=cname
value2=test123

aws ec2 run-instances --image-id $image --count 1 --instance-type $instancetype --tag-specifications 'ResourceType=instance,Tags=[{Key="$key1",Value="$value1"},{Key="$key2",Value="$value2"}]'
json bash amazon-ec2
1个回答
1
投票

您需要对参数进行双引号,转义任何打算作为标记规范字符串的一部分传递的双引号。

aws ec2 run-instances \
        --image-id "$image" \
        --count 1 \
        --instance-type "$instancetype" \
        --tag-specifications "ResourceType=instance,Tags=[{Key="\$key1\",Value=\"$value1\"},{Key=\"$key2\",Value=\"$value2\"}]"

我在对该问题的评论中提到的同样的警告适用:如果您的任何变量包含可能影响tag-spec解析方式的值,则在使用它们之前需要对它们进行适当的转义。例如

value2='test" " 3'  # Wrong
value2='test\" \" 3'  # Right
© www.soinside.com 2019 - 2024. All rights reserved.