将参数变为curl调用变​​量不起作用

时间:2016-02-05 13:42:25

标签: shell curl

我正在使用installr API。 我正在尝试通过脚本执行以下curl请求:

curl -H "X-InstallrAppToken: mytoken"  https://www.installrapp.com/apps.json/ \
  -F 'qqfile=@'$APKPATH \
  -F 'releaseNotes=These are my release notes' \
  -F 'notify=true'

它完美无缺。 但是,当我尝试从包含如下变量的文件中获取发行说明时:

RELEASENOTES=`cat "release_notes/test.md"`
curl -H "X-InstallrAppToken: mytoken"  https://www.installrapp.com/apps.json/ \
  -F 'qqfile=@'$APKPATH \
  -F 'releaseNotes='$RELEASENOTES \
  -F 'notify=true' > /dev/null

根本不起作用,只发送第一个单词。对于其他人,我有错误无法解析主机:xxx。

我对这两个卷曲请求做了echo,打印完全相同的东西。 返回特定格式的cat命令是什么?

1 个答案:

答案 0 :(得分:1)

引号和空格可能存在问题。您可以在变量周围使用双引号以允许在shell中进行变量扩展。

RELEASENOTES=$(cat "release_notes/test.md")
curl -H "X-InstallrAppToken: mytoken"  https://www.installrapp.com/apps.json/ \
  -F "qqfile=@${APKPATH}" \
  -F "releaseNotes=${RELEASENOTES}" \
  -F 'notify=true' > /dev/null