帮助curl命令并从文件中读取

时间:2010-12-10 03:23:16

标签: bash shell scripting curl github

我有一个curl命令需要发帖并发送我的ssh密钥作为其中一个参数,我使用的命令如下所示:

SSH_KEY=`cat ~/.ssh/id_rsa.pub`;
curl -d "login=username&token=apikey&title=test&key=$SSH_KEY" http://github.com/api/v2/yaml/repos/key/username/somerepo/add

问题是ssh键中有一个+,字符串在那时终止,我该如何避免这种情况?

4 个答案:

答案 0 :(得分:3)

显然在版本7.18.0中,curl添加了--data-urlencode选项:

curl --data-urlencode "login=username&token=apikey&title=test&key=$SSH_KEY" http://github.com/api/v2/yaml/repos/key/username/somerepo/add

答案 1 :(得分:1)

使用--data-urlencode代替-d

答案 2 :(得分:0)

urlencode()

我认为你在寻找什么?您可以使用字符串上的urlencode()自动替换特殊字符。

http://php.net/manual/en/function.urlencode.php了解有关它的更多信息。

更多信息:curl.haxx.se/docs/manpage.html页面搜索: urlencode

希望有所帮助:)

答案 3 :(得分:0)

要发送文件,请在文件名前添加“@”

curl -d "login=username&token=apikey&title=test&key=@~/.ssh/id_rsa.pub" \
http://github.com/api/v2/yaml/repos/key/username/somerepo/add

希望这有帮助。