Übergeben einer URL mit Klammern zum Einrollen

305

Wenn ich versuche, eine URL an locken zu übergeben, die Klammern enthält, schlägt dies mit einem Fehler fehl:

$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29

Wenn ich jedoch beiden Klammern entkomme, scheint es zu funktionieren:

$ curl 'http://www.google.com/?TEST\[\]=1'

Interessanterweise verwende ich einen Backslash, um nur die erste Klammer zu umgehen, die mit dem Fehlercode 20497 stillschweigend fehlschlägt:

$ curl 'http://www.google.com/?TEST\[]=1'
$ echo $!
20497

Meine Frage ist, wie dies für allgemeine Fälle behoben werden kann. Gibt es ein Argument, das URLs automatisch maskiert, oder eine Beschreibung der Zeichen, die maskiert werden müssen, bevor sie an curl übergeben werden?

chaimp
quelle

Antworten:

482

Egal, ich habe es in den Dokumenten gefunden:

-g/--globoff
              This  option  switches  off  the "URL globbing parser". When you set this option, you can
              specify URLs that contain the letters {}[] without having them being interpreted by  curl
              itself.  Note  that  these  letters  are not normal legal URL contents but they should be
              encoded according to the URI standard.
chaimp
quelle
10
Bei mir hat es nicht funktioniert. Ich musste vor jeder eckigen Klammer ein \ hinzufügen
jesusperaltac
@ Jesusperaltac Das gleiche gilt für mich, mit MacOS
Jean
Bei mir hat es funktioniert - unter OS X High Sierr, Curl 7.54.0 (x86_64-apple-darwin17.0) libcurl / 7.54.0.
Schatten
1
@ Jean @ jesusperaltac für mich funktioniert es unter Windows, wenn der Befehl istcurl -L -o <local_file_name> -g <url>
Steven Liang
Arbeitete für mich CentOS 7.1. Curl Version 7.29.0 (x86_64-redhat-linux-gnu) libcurl / 7.29.0)
PatS
0

Beim Globbing werden Klammern verwendet, daher muss diese mit einem Schrägstrich entfernt werden \. Alternativ deaktiviert der folgende Befehlszeilenschalter das Globbing:

--globoff(oder die Kurz Option Version: -g)

Ex:

curl --globoff https://www.google.com?test[]=1
Kennzeichen
quelle