[bash] bash curl 문에 ‘&’문자를 포함하는 방법

bash에서 curl을 사용하여 웹 페이지를 다운로드하려고하는데 &URL 의 기호가 원하는대로 문자로 해석되지 않습니다. 기호 &가 지루하고 특별한 것이 아니라고 bash를 설득하는 방법에 대한 아이디어 가 있습니까?



답변

전체 URL을 큰 따옴표 안에 넣으면 문제가 해결됩니다.


답변

curl "http://www.example.com?m=method&args=1"

&를 GET URL의 구분 기호로 사용하고 있습니까? 아니면 데이터에 있습니까?

데이터에있는 경우 HTML 문자로 인코딩해야합니다. 그렇지 않은 경우 따옴표로 묶어야합니다.

에 대한 인코딩 은 URL 에 &있어야합니다 %26.

curl "http://www.example.com?m=this%26that


답변

&기호 주위에 작은 따옴표를 넣으면 작동하는 것 같습니다. 즉, http://www.example.com/page.asp?arg1=${i}'&'arg2=${j}curl 과 같은 URL을 사용 하면 요청 된 웹 페이지가 반환됩니다.


답변

이스케이프 “&”문자를 시도하는 대신 아래와 같이 -d 매개 변수를 사용하여 POST 요청에 http url 매개 변수를 지정할 수 있습니다.

curl -X POST http://www.example.com \
-d arg1=this \
-d arg2=that

요청이 GET이면 curl에 GET 요청과 함께 데이터를 전송하도록 지시하는 -G 옵션도 추가해야합니다.

curl -X GET -G http://www.example.com \
-d arg1=this \
-d arg2=that


답변

%26대신 사용할 수 있습니다 &. 엔티티 코드가 제대로 작동합니다.


답변

--url큰 따옴표와 함께 매개 변수 를 사용하십시오.


답변