cloud zsh `=` 表示法与字符串表示法

cloud zsh `=` notation vs. string notation

为什么这个可以 gcloud config list project --format 'value(core.project)' 而这个 gcloud config list project --format=value(core.project) 不行?该文档使用 = 表示法。使用它时出现错误 number expected。我的猜测是它试图将投影值 (core.project) 评估为数字,而``告诉它评估为字符串。

我不熟悉 zsh 但是 bash returns 语法错误 unrecognized token '(' 如果你这样做。

这不是 gcloud 本身的问题。

问题是 zsh(和 bash)shell 对 (...) 有自己的解释。在bash中,这是一个子命令shell。

解决方案是确保将标志值传递给命令 as-is 而不是由 shell.

计算

正如@hobbs 正确指出的那样,您可以使用 '...'"..." 正确包装标志值而不会出现问题。我的偏好是 --flag=value,当使用 bash 时,'...' 不需要 变量扩展时,"..." 是。

我个人的偏好是始终使用 = 并默认为 "..."

gcloud config list project \
--format="value(core.project)"