대괄호가 포함 된 curl에 URL을 전달하려고하면 오류와 함께 실패합니다.
$ 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로 전달하기 전에 이스케이프해야하는 문자에 대한 설명이 있습니까?
답변
신경 쓰지 마십시오. 문서에서 찾았습니다.
-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.
답변
글 로빙 은 괄호를 사용하므로 슬래시로 이스케이프해야합니다 \
. 또는 다음 명령 줄 스위치는 글 로빙을 비활성화합니다.
--globoff
(또는 짧은 옵션 버전 : -g
)
전의:
curl --globoff https://www.google.com?test[]=1