2010-12-10 13 views
1

ich eine Locke Befehl haben, die einen Beitrag zu machen braucht und meine SSH-Schlüssel als eine der params senden, wird der Befehl Ich benutze sieht wie folgt aus:Hilfe mit einem curl Befehl und Lesen aus einer Datei

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 

Das Problem ist, dass es eine + im ssh-Schlüssel gibt und die Zeichenfolge an diesem Punkt endet, wie kann ich das vermeiden?

Antwort

3

Offenbar in Version 7.18.0 curl hinzugefügt, um die --data-urlencode Option:

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

Ist das, wonach ich suche? Sie können Sonderzeichen automatisch durch Verwendung von urlencode() in der Zeichenfolge ersetzen lassen.

http://php.net/manual/en/function.urlencode.php für weitere Informationen.

auch weitere Informationen über: curl.haxx.se/docs/manpage.html für eine Seite-Suche: urlencode

Hoffnung, das hilft :)

1

Verwenden --data-urlencode statt -d.

0

Um eine Datei Add '@' vor dem Dateinamen

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

this helps zu senden.