Bash JSON:添加Var

时间:2015-08-27 21:37:27

标签: json bash curl

我正在尝试使用curl命令来执行POST请求。内容的格式是我发布的消息是JSON。在下面的示例中,我不了解如何添加$*部分,这应该是您在启动.sh文件时添加的所有参数。

curl -X POST --data-urlencode 'payload={"channel": "#serverstatus", "username": "BananaStatus", "text": "${*}", "icon_emoji": ":banana:"}' https://hooks.slack.com/services/

当我运行时,我只收到${*}作为文字。

2 个答案:

答案 0 :(得分:2)

bash不会在''(单引号)之间扩展变量

你必须使用双引号(“”)

尝试:

'...any text..'"${*}"'...other text..'

它给你的例子:

curl -X POST --data-urlencode 'payload={"channel": "#serverstatus", "username": "BananaStatus", "text": "'"${*}"'", "icon_emoji": ":banana:"}' https://hooks.slack.com/services/  

答案 1 :(得分:1)

在字符串中间使用变量时,应使用双引号。

所以,请使用:

"payload={\"channel\": \"#serverstatus\", \"username\": \"BananaStatus\", \"text\": \"${*}\", \"icon_emoji\": \":banana:\"}"

而不是:

'payload={"channel": "#serverstatus", "username": "BananaStatus", "text": "${*}", "icon_emoji": ":banana:"}'