我试图通过'运行Shell脚本'发送一个curl命令,但是没有运气。我使用/ bin / bash并将info作为参数传递。这是我的脚本,但继续从IFTTT获得Bad Request
。我没有正确使用args(如果我只是把"value1":"test"
它工作正常),我应该如何格式化$ 1?
for f
do
curl -X POST -H "Content-Type: application/json" -d '{"value1":$1}' https://maker.ifttt.com/trigger/Automator/with/key/heremykey
done
谢谢!
答案 0 :(得分:2)
您应该传递有效的JSON。 Bash中没有内置的JSON支持,因此您需要使用外部工具,例如PHP或Node:
#!/bin/bash -
function json_encode {
printf "$1" | php -r 'echo json_encode(stream_get_contents(STDIN));'
}
for f
do
value=`json_encode "$f"`
curl -X POST -H "Content-Type: application/json" -d "{\"value1\":$value}" \
https://maker.ifttt.com/trigger/Automator/with/key/heremykey
done
该脚本应该为{"value1": ...}
中的每个项目发送$@
字符串(因为for
循环的简短版本在$@
上运行)。