Si intento pasar una URL a curl que contiene corchetes, falla con un error:
$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29
Sin embargo, si escapo de ambos corchetes, parece funcionar:
$ curl 'http://www.google.com/?TEST\[\]=1'
Curiosamente, uso una barra invertida para escapar solo del primer paréntesis que falla en silencio con el 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á de las URL automáticamente, o una descripción de los caracteres que deben escaparse antes de pasar a curl?