Передача URL в квадратных скобках для скручивания - PullRequest
274 голосов
/ 01 декабря 2011

Если я пытаюсь передать 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?

1 Ответ

431 голосов
/ 01 декабря 2011

Не берите в голову, я нашел это в документах:

-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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...