Если я пытаюсь передать URL curl, который содержит скобки, он завершается с ошибкой:
$ curl 'http://www.google.com/?TEST[]=1'
curl: (3) [globbing] illegal character in range specification at pos 29
Тем не менее, если я уберу обе скобки, это будет работать:
$ curl 'http://www.google.com/?TEST\[\]=1'
Интересно, что я использую обратную косую черту, чтобы экранировать только первую скобку, которую он молча завершает с кодом ошибки 20497:
$ curl 'http://www.google.com/?TEST\[]=1'
$ echo $!
20497
Мой вопрос, как это исправить в общих случаях? Есть ли аргумент, который будет автоматически экранировать URL-адреса, или описание символов, которые должны быть экранированы перед переходом к curl?
curl -L -o <local_file_name> -g <url>
Глобирование использует скобки, следовательно, необходимо избегать их с косой чертой
\
. В качестве альтернативы следующий параметр командной строки отключит глобализацию:--globoff
(или вариант короткого варианта:-g
)Пример:
источник