2011-11-30 10 views
210

Gdy próbuję przekazać adres URL do zwijania się, że zawiera wsporniki, nie powiedzie się z powodu błędu:Podanie adresu URL ze wspornikami do zwijania

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

Gdybym jednak uciec oba wsporniki, wydaje się działać:

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

Co ciekawe, używam ukośnika ucieczki tylko pierwszy wspornik zawiedzie dyskretnie z kodem błędu 20497:

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

Moje pytanie brzmi: jak to naprawić w przypadkach ogólnych? Czy istnieje argument, który automatycznie usuwa adresy URL, lub opis znaków, które muszą zostać usunięte przed przejściem do curl?

Odpowiedz

316

Nevermind, znalazłem go w docs:

-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. 
+1

Dla mnie to nie działa. Musiałem dodać \ przed każdym nawiasem kwadratowym – Jesus

+4

wygląda na to, że ta opcja powinna być włączona, np. '-g/- glob' – jchook

Powiązane problemy