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
.