2011-11-30 7 views
210

Si trato de pasar una URL para rizar que contiene corchetes, se produce un error:El paso de un URL con soportes para rizar

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

Sin embargo, si me escapo ambos soportes, que parece funcionar:

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

Curiosamente, utilizo una barra invertida para escapar solamente el primer soporte se produce un error en silencio con código de error 20497:

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

Mi pregunta es cómo solucionar esto para casos generales? ¿Existe un argumento que escapará a las URL automáticamente, o una descripción de los caracteres que deben escaparse antes de pasar al curl?

Respuesta

316

No importa, lo encontré en la documentación:

-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

Para mí, no funcionó. Tuve que agregar un \ antes de que cada corchete – Jesus

+4

parezca que esta opción debería ser opt-in como '-g/- glob' – jchook

Cuestiones relacionadas