2016-09-16 2 views
0

'Run Shell Script'를 통해 Automator에서 curl 명령을 보내려고합니다. 인수가 있지만 운이 없습니다. 나는/bin/bash를 사용하고 정보를 인수로 전달합니다. 여기 내 스크립트가 있지만 계속 Bad Request IFTTT 점점. args를 올바르게 사용하지 않으면 (정확히 "value1":"test"을 입력하면됩니다), $ 1을 어떻게 포맷해야합니까?실행 셸에서 Curl 실행 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 

고마워요!

답변

2

유효한 JSON을 전달해야합니다. 이는 기본 제공되지-에 배쉬에서 JSON 지원, 당신은 PHP, 또는 노드와 같은 외부 도구를 사용할 필요가 있도록 :

스크립트는 짧은 때문에 ( [email protected]의 각 항목에 대한 {"value1": ...} 문자열을 보낼 예정이다
#!/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 

버전의 for 루프는 [email protected]에서 작동합니다.

+0

우수 감사합니다. 우리가 그 동안 $ /를/folder/subfolder/subfolder/etc/etc/file.mp4에서'file.mp4 '로 파싱하는 가장 좋은 방법은 무엇입니까? –

+1

@PJPalomaki'basename "$ 1"' –