Shell脚本curl REST API - 引用问题

时间:2017-03-24 16:03:33

标签: bash shell curl

#! /bin/bash
#  delete a firewall rule
value=x
if [ $1 != "" ]; then
value=$1
echo "$value"
curl -X DELETE -d '{"ruleid": "${value}"}'     http://192.168.0.12:8080/wm/firewall/rules/json
exit 0

else
    echo "no parameter "
    exit 0
fi

此命令无法正常运行。 我不知道如何处理这个值参数。如何使用报价?

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);

1 个答案:

答案 0 :(得分:3)

此示例是引用的噩梦,但这里是正确的语法:

  curl -X DELETE -d '{"ruleid": "'"$value"'"}'
#                                ||      |
# here we close the single quote +|      + the same applies for closing 
#                                 |
#      here we open double quotes +                           

除了双引号变量外,您应该将所有内容用单引号括起来。

另一种选择是

curl -X DELETE -d "{\"ruleid\": \"$value\"}"