0

「シェルスクリプトの実行」を介して Automator でカールコマンドを引数付きで送信しようとしていますが、運がありません。/bin/bash を使用し、情報を引数として渡しています。これが私のスクリプトですがBad Request、IFTTT から取得し続けます。引数を正しく使用していないことに関係していると思います(うまくいくとしたら"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 やノードなどの外部ツールを使用する必要があります。

#!/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 に答える