2016-09-16 2 views
0

Ich versuche, in Automator über das 'Run Shell Script' mit Argumenten einen Curl-Befehl zu senden, aber kein Glück. Ich benutze/bin/bash und übergebe Informationen als Argumente. Hier ist mein Skript, aber bekomme immer Bad Request von IFTTT. Ich habe es damit zu tun, die Argumente nicht korrekt zu verwenden (wenn ich einfach es funktioniert gut), wie soll ich die $ 1 formatieren?Laufende Curl in Run Shell Skript mit Argumenten in Automator

for f 
do 
    curl -X POST -H "Content-Type: application/json" -d '{"value1":$1}' https://maker.ifttt.com/trigger/Automator/with/key/heremykey 
done 

Vielen Dank!

Antwort

2

Sie sollten einen gültigen JSON übergeben. Es gibt keine integrierte in JSON-Unterstützung in Bash, so dass Sie externe Tools verwenden müssen, wie PHP oder Knoten:

#!/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 

Das Skript sollte in [email protected]{"value1": ...} Zeichenfolge für jedes Element senden (weil die kurzen Version der for Schleife arbeitet auf [email protected]).

+0

Ausgezeichnet, danke! Wenn wir schon dabei sind, was ist der beste Weg, $ 1 aus '/ Ordner/Unterordner/Unterordner/etc/etc/file.mp4' nach' file.mp4' zu parsen? –

+1

@PJPalomaki 'Basisname" $ ​​1 "' –

Verwandte Themen