首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IFTTT & Raspberry pi:从终端向IFTTT web请求赋值

IFTTT & Raspberry pi:从终端向IFTTT web请求赋值
EN

Stack Overflow用户
提问于 2018-08-29 20:09:38
回答 1查看 331关注 0票数 1

我用IFTTT做了一个Webhook小程序,当"print“动作触发时,它会给我发邮件

在URLs主体中,我可以给出这样的值

代码语言:javascript
复制
curl -X POST -H "Content-Type: application/json" -d '{"value1":"9"}' https://maker.ifttt.com/trigger/print/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

我想要做的是找到我的公共ip地址并将其作为value1传递。

我找到了我的IP地址

代码语言:javascript
复制
value1=$(dig +short myip.opendns.com @resolver1.opendns.com)
echo $value1

如何将value1传递到上述网址

我试过了

代码语言:javascript
复制
'{"value1":"$value1"}' 
'{"value1":{{$value1}}}' 
'{"value1":{{value1}}}'

附言:我对shell脚本一无所知。这是我第一次这样做

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-29 21:11:24

单引号内的表达式不会在shell中展开,它们被视为文字。这意味着,如果您将IP地址存储在名为ip的变量中,如下所示:

代码语言:javascript
复制
ip=$(dig +short myip.opendns.com @resolver1.opendns.com)

你把它放在单引号里,它不会扩展:

代码语言:javascript
复制
echo '$ip'
$ip

然而,如果你把它放在双引号里,它将被展开:

代码语言:javascript
复制
echo "$ip"
192.80.136.233

因此,您需要双引号,但这会导致问题,因为您需要在JSON字符串两边加上双引号,因此需要在前面加上反斜杠来转义这些双引号。因此,您需要:

代码语言:javascript
复制
curl -X POST -H "Content-Type: application/json" -d "{\"value1\":\"$ip\"}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52077109

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档