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?
curl -L -o <local_file_name> -g <url>
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:
quelle