我在脚本中使用命令gcloud compute instances list
,但我担心确切的输出格式不是静态的。我该怎么办?
答案 0 :(得分:22)
您应该使用适用于大多数--format
命令的gcloud
标记。
例如,如果您希望获得与当前(截至撰写此答案的时间)格式完全相同的输出,则可以运行:
$ gcloud compute instances list --format="table(
name,
zone.basename(),
machineType.basename(),
scheduling.preemptible.yesno(yes=true, no=''),
networkInterfaces[0].networkIP:label=INTERNAL_IP,
networkInterfaces[0].accessConfigs[0].natIP:label=EXTERNAL_IP,
status
)"
此命令的输出不会在版本之间发生变化,即使命令的默认输出有效(除非格式化的资源发生变化;这应该是罕见的)。 1 显示命令中资源的默认格式是正在进行的工作。 2
您还可以为机器可读输出指定YAML或JSON等格式:
$ gcloud compute instances list --format=yaml
$ gcloud compute instances list --format=json
请注意,此输出包含的信息比此命令的默认输出中包含的信息多得多;这是构建自定义格式时必须使用的信息。
CSV是另一种格式选项。与table
类似,它需要投影 - 如何打印每一行的规范。 3
$ gcloud compute instances list --format="csv(name,zone,status)"
name,zone,status
example-instance,us-central1-f,RUNNING
...
有关gcloud
格式功能的详细信息,请参阅gcloud topic formats
和gcloud topic projections
的输出。
gcloud compute instances list --format=flattened
。gcloud beta test android locales list
,您可以传递--verbosity=INFO
标记并查找INFO: Display format
。