2016-09-16 111 views
0

我試圖通過'運行Shell腳本'通過參數發送一個curl命令,但沒有運氣。我使用/ bin/bash並將info作爲參數傳遞。這裏是我的腳本,但從IFTTT不斷得到Bad Request。我得到這是不正確使用參數(如果我只是把"value1":"test"它工作正常),我應該如何格式化$ 1?在Automator中運行帶有參數的運行Shell腳本中的捲曲

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,或節點:

#!/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": ...}字符串中的每一項[email protected](因爲短for循環的版本在[email protected]上運行)。

+0

非常好,謝謝!當我們處理它時,從$ /文件夾/子文件夾/子文件夾/ etc/etc/file.mp4到#file.mp4解析$ 1的最佳方法是什麼? –

+1

@PJPalomaki'basename「$ 1」' –