IFTTT & Raspberry pi:将值从终端分配给 IFTTT 网络请求
IFTTT & Raspberry pi: Assigning value from terminal to IFTTT web request
我在 IFTTT 中制作了一个 Webhook 小程序,它会在 "print" 动作触发时向我发送邮件
在 URLs JSON 正文中,我可以给出这样的值
curl -X POST -H "Content-Type: application/json" -d '{"value1":"9"}' https://maker.ifttt.com/trigger/print/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我想做的是找到我的 public IP 地址并将其作为值 1 传递。
我通过
找到了我的 IP
value1=$(dig +short myip.opendns.com @resolver1.opendns.com)
echo $value1
如何将 value1 传递给上面 URL
我试过了
'{"value1":"$value1"}'
'{"value1":{{$value1}}}'
'{"value1":{{value1}}}'
P.S: 我对 shell 脚本的基础知识为零。这是我第一次做
单引号内的表达式在 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\"}"
我在 IFTTT 中制作了一个 Webhook 小程序,它会在 "print" 动作触发时向我发送邮件
在 URLs JSON 正文中,我可以给出这样的值
curl -X POST -H "Content-Type: application/json" -d '{"value1":"9"}' https://maker.ifttt.com/trigger/print/with/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
我想做的是找到我的 public IP 地址并将其作为值 1 传递。
我通过
找到了我的 IPvalue1=$(dig +short myip.opendns.com @resolver1.opendns.com)
echo $value1
如何将 value1 传递给上面 URL
我试过了
'{"value1":"$value1"}'
'{"value1":{{$value1}}}'
'{"value1":{{value1}}}'
P.S: 我对 shell 脚本的基础知识为零。这是我第一次做
单引号内的表达式在 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\"}"