我用IFTTT做了一个Webhook小程序,当"print“动作触发时,它会给我发邮件
在URLs主体中,我可以给出这样的值
curl -X POST -H "Content-Type: application/json" -d '{"value1":"9"}' https://maker.ifttt.com/trigger/print/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx我想要做的是找到我的公共ip地址并将其作为value1传递。
我找到了我的IP地址
value1=$(dig +short myip.opendns.com @resolver1.opendns.com)
echo $value1如何将value1传递到上述网址
我试过了
'{"value1":"$value1"}'
'{"value1":{{$value1}}}'
'{"value1":{{value1}}}'附言:我对shell脚本一无所知。这是我第一次这样做
发布于 2018-08-29 21:11:24
单引号内的表达式不会在shell中展开,它们被视为文字。这意味着,如果您将IP地址存储在名为ip的变量中,如下所示:
ip=$(dig +short myip.opendns.com @resolver1.opendns.com)你把它放在单引号里,它不会扩展:
echo '$ip'
$ip然而,如果你把它放在双引号里,它将被展开:
echo "$ip"
192.80.136.233因此,您需要双引号,但这会导致问题,因为您需要在JSON字符串两边加上双引号,因此需要在前面加上反斜杠来转义这些双引号。因此,您需要:
curl -X POST -H "Content-Type: application/json" -d "{\"value1\":\"$ip\"}"https://stackoverflow.com/questions/52077109
复制相似问题