컬을 사용하여 zsh에 오류가 있습니까?

컬을 사용하여 zsh에 오류가 있습니까?

zsh에서 컬 명령을 실행하고 싶습니다.

curl -X GET "https://api.cloudflare.com/client/v4/zones/<ZONE>" \ 
-H "Content-Type:application/json" \ 
-H "Authorization: Bearer <TOKEN>"

하지만 이것을 실행하면 나는 얻는다.

{"success":false,"errors":[{"code":9106,"message":"Missing X-Auth-Email header"},{"code":9107,"message":"Missing X-Auth-Key header"}],"messages":[],"result":null}curl: (3) URL using bad/illegal format or missing URL
zsh: command not found: -H
zsh: command not found: -H

오류 응답 외에도. 나에게 연락하는 이유 zsh: command not found: -H는 옵션이 -H무시된다는 의미입니다.

답변1

\코드의 각 문자는 뒤에 오는 공백 문자를 이스케이프합니다. 이스케이프된 공백은 인용된 공백처럼 동작합니다. 코드에서 공백 단어를 생성할 뿐만 아니라 이러한 단어를 원하지 않습니다. 백슬래시는 공백을 이스케이프하므로 개행 문자를 이스케이프하지 않습니다. 실제로 코드는 세 가지 개별 명령으로 구성됩니다. 그 중 두 개는 시작 -H하고 의미가 없습니다. 마치 다음을 실행하는 것처럼:

curl -X GET "https://api.cloudflare.com/client/v4/zones/<ZONE>" ' '
-H "Content-Type:application/json" ' '
-H "Authorization: Bearer <TOKEN>"

여기서 공백은 인용되어 있으며 코드에서는 이스케이프됩니다. 결과는 동일합니다.

다음 줄에서 명령을 계속하려면 개행 문자를 이스케이프해야 합니다.

문자 뒤의 공백을 제거하십시오 \. 두 개의 백슬래시가 각각 발생해야 합니다.즉시해당 개행 문자 앞에. 그러면 세 줄이 하나의 명령으로 해석됩니다.

이는 에 국한되지 않습니다 zsh.

관련 정보