运行ning Curl in 运行 Shell Automator 中带有参数的脚本
Running Curl in Run Shell Script with arguments in Automator
我试图通过 'Run Shell Script' 在 Automator 中发送带有参数的 curl 命令,但没有成功。我正在使用 /bin/bash 并将信息作为参数传递。这是我的脚本,但不断从 IFTTT 获取 Bad Request
。我知道这与没有正确使用 args 有关(如果我只是输入 "value1":"test"
它工作正常),我应该如何格式化 $1?
for f
do
curl -X POST -H "Content-Type: application/json" -d '{"value1":}' https://maker.ifttt.com/trigger/Automator/with/key/heremykey
done
谢谢!
您应该传递一个有效的 JSON。 Bash中没有内置的JSON支持,所以需要使用外部工具,比如PHP,或者Node:
#!/bin/bash -
function json_encode {
printf "" | 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
循环的短版本在 $@
上运行)。
我试图通过 'Run Shell Script' 在 Automator 中发送带有参数的 curl 命令,但没有成功。我正在使用 /bin/bash 并将信息作为参数传递。这是我的脚本,但不断从 IFTTT 获取 Bad Request
。我知道这与没有正确使用 args 有关(如果我只是输入 "value1":"test"
它工作正常),我应该如何格式化 $1?
for f
do
curl -X POST -H "Content-Type: application/json" -d '{"value1":}' https://maker.ifttt.com/trigger/Automator/with/key/heremykey
done
谢谢!
您应该传递一个有效的 JSON。 Bash中没有内置的JSON支持,所以需要使用外部工具,比如PHP,或者Node:
#!/bin/bash -
function json_encode {
printf "" | 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
循环的短版本在 $@
上运行)。