如何在json文件中使用变量
[root@ip-10-0-5-50 ~]# IP=`aws waf-regional list-ip-sets | grep IPSetId | awk -F ":" '{print $2}' | sed s/,//g`
[root@ip-10-0-5-50 ~]# echo $IP
"9518adf6-c862-4208-84bf-749e3037cd95"下面是从脚本执行的代码
ip=`aws waf-regional list-ip-sets | grep IPSetId | awk -F ":" '{print $2}' | sed s/,//g`
echo $ip
rule_id=`aws waf-regional list-rules | grep RuleId | awk -F ":" '{print $2}' | sed "s/\"//g"`
change_token=`aws waf-regional get-change-token | grep ChangeToken | awk -F ":" '{print $2}' | sed "s/\"//g" `
aws waf-regional update-rule --rule-id $rule_id --change-token $change_token --updates '{ "Action": "INSERT","Predicate":{ "Negated":false,"Type":"IPMatch","DataId":"'"$ip"'"}}'输出:
"9518adf6-c862-4208-84bf-749e3037cd95"
Error parsing parameter '--updates': Invalid JSON: Expecting ',' delimiter: line 1 column 81 (char 80)
JSON received: { "Action": "INSERT","Predicate":{ "Negated":false,"Type":"IPMatch","DataId":" "9518adf6-c862-4208-84bf-749e3037cd95" "}}因为"DataId":" "9518adf6-c862-4208-84bf-749e3037cd95" "}}而来的问题
发布于 2018-05-15 18:19:56
$ip的值在它周围包含双引号,因此不需要在JSON中添加它们。这就产生了一组额外的引号。
aws waf-regional update-rule --rule-id $rule_id --change-token $change_token --updates '{ "Action": "INSERT","Predicate":{ "Negated":false,"Type":"IPMatch","DataId":'"$ip"'}}'发布于 2018-05-15 02:22:34
也许这就是你想要做的?
#!/bin/bash
export ip="9518adf6-c862-4208-84bf-749e"
eval aws waf-regional update-rule --rule-id 6542a20c-e12e-4a62-93a1-7501a50d97aa --change-token $change_token --updates \'{ \"Action\": \"INSERT\",\"Predicate\":{ \"Negated\":false,\"Type\":\"IPMatch\",\"DataId\":\"$ip\"}}\'https://stackoverflow.com/questions/50340244
复制相似问题