「aws ec2 描述實例 --query」在 ZSH 中不起作用

「aws ec2 描述實例 --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"'

括號用於在兩者中進行通配桀騁巴什。差別在於預設情況下巴什如果不匹配,則保持模式不變,而桀騁列印“未找到匹配”訊息。

通常用單引號引用它們 - 正如所討論的那樣 - 應該可以解決這個問題。但似乎至少該選項的價值是在沒有事先清理或額外引用的情況下--query運行的。eval您會收到錯誤訊息,因為現有單引號未作為值的一部分傳遞。在我建議的解決方案中,雙引號將被傳遞,以便查詢在透過 eval 運行時仍然被引用。

相關內容