使用shell变量中的JSON内容运行curl命令

时间:2018-04-05 11:45:40

标签: linux bash shell

我有以下脚本......

我似乎无法使变量起作用

#!/bin/bash

info = 'Help...?'    
object='{"attachments": [{"title": "ti1","text": $info }]}'    
curl -X POST -H 'Content-type: application/json' --data '$object' https://hooks.slack.com/services/xxxx

exit 0

即使--data '$object'没有$info也无法工作......因为Slack API无法读取我的请求。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

在传递shell变量时使用双引号并删除变量赋值中的额外空格。

curl -X POST -H 'Content-type: application/json' --data "$object"
#                                                       ^^^^^^^^^^

使用嵌套引号保留JSON语法中的值

info='Help...?'
object='{"attachments": [{"title": "ti1","text": "'"$info"'" }]}'