我正在尝试使用curl
命令来执行POST请求。内容的格式是我发布的消息是JSON。在下面的示例中,我不了解如何添加$*
部分,这应该是您在启动.sh
文件时添加的所有参数。
curl -X POST --data-urlencode 'payload={"channel": "#serverstatus", "username": "BananaStatus", "text": "${*}", "icon_emoji": ":banana:"}' https://hooks.slack.com/services/
当我运行时,我只收到${*}
作为文字。
答案 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:"}'