0

我正在尝试通过“运行 Shell 脚本”在 Automator 中发送带有参数的 curl 命令,但没有运气。我正在使用 /bin/bash 并将信息作为参数传递。这是我的脚本,但请继续Bad Request从 IFTTT 获取。我知道这与没有正确使用 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

谢谢!

4

1 回答 1

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循环的简短版本在 上运行$@)。

于 2016-09-16T17:18:21.900 回答