我有一个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键中有一个+
,字符串在那时终止,我该如何避免这种情况?
答案 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
希望这有帮助。