在调用curl的脚本中使用变量

时间:2015-01-16 04:17:19

标签: linux bash curl

我正在尝试将 1.2.3.4 替换为以下脚本中变量 $ wanip 的内容。

wanip="4.3.2.1"
echo $wanip
content=$(curl --insecure -H "X-DNSimple-Token: foo:bar" -H "Accept: application/json" -H "Content-Type: application/json" -X PUT -d "{\"record\": {\"name\": \"foo\",\"content\": \"1.2.3.4\"}}" https://acme.com/records/123)
echo $content

如果我用$ wanip *替换 1.2.3.4 ,当我运行脚本时,我收到一条消息:“message”:“解析JSON时遇到的问题”

2 个答案:

答案 0 :(得分:1)

尝试添加一个抽象层:

#!/bin/bash
wnip="4.3.2.1"
echo $wanip
command="curl --insecure -H 'X-DNSimple-Token: foo:bar' -H 'Accept: application/json' -H 'Content-Type: application/json' -X PUT -d '{\"record\": {\"name\": \"foo\",\"content\": \"${wnip}\"}}' https://acme.com/records/123"
echo $command
content=$($command)
echo $content

答案 1 :(得分:0)

经过一番黑客攻击,我得到了这个工作。奇怪。

wanip=\"4.3.2.1\"
echo $wanip
content=$(curl --insecure -H "X-DNSimple-Token: foo:bar" -H "Accept: application/json" -H "Content-Type: application/json" -X PUT -d "{\"record\": {\"name\": \"foo\",\"content\": $wanip }}" https://acme.com/records/123)
echo $content