'aws ec2 explain-instances --query'가 ZSH에서 작동하지 않습니다

'aws ec2 explain-instances --query'가 ZSH에서 작동하지 않습니다

다음 명령은 bash에서 잘 작동합니다.

aws ec2 describe-instances \
  --filters "Name=tag:Name,Values=XXXXXXX" "Name=instance-state-code,Values=16" \
  --query 'Reservations[0].Instances[0].PublicDnsName'

그러나 zsh에서 실행하려고 하면 다음과 같은 결과가 나타납니다.

(eval):1: no matches found: Reservations[0].Instances[0].PublicDnsName

이 문제를 해결할 수 있는 방법이 있나요?

나는 뛰고있어:

aws-cli/1.11.5 Python/2.7.6 Linux/4.4.0-45-generic botocore/1.4.62

답변1

이 시도:

aws ec2 describe-instances \
  --filters "Name=tag:Name,Values=XXXXXXX" "Name=instance-state-code,Values=16" \
  --query '"Reservations[0].Instances[0].PublicDnsName"'

브래킷은 두 가지 모두에서 globbing에 사용됩니다.zsh그리고세게 때리다. 차이점은 기본적으로세게 때리다일치하지 않으면 패턴을 변경하지 않고 그대로 둡니다.zsh"일치하는 항목이 없습니다"라는 메시지를 인쇄합니다.

일반적으로 문제에서처럼 작은따옴표로 인용하면 이 문제가 해결됩니다. 그러나 최소한 옵션의 가치는 사전 위생이나 추가 견적 없이 --query실행되는 것으로 보입니다. eval기존 작은따옴표가 값의 일부로 전달되지 않으므로 오류 메시지가 표시됩니다. 내가 제안한 솔루션에서는 큰따옴표가 전달되므로 eval을 통해 실행될 때 쿼리가 계속 인용됩니다.

관련 정보