当前位置:  开发笔记 > 前端 > 正文

我想在脚本中使用`gcloud`的输出,但格式会发生变化.我该怎么办?

如何解决《我想在脚本中使用`gcloud`的输出,但格式会发生变化.我该怎么办?》经验,为你挑选了1个好方法。

gcloud compute instances list在脚本中使用该命令,但我担心确切的输出格式不是静态的.我该怎么办?



1> Zachary Newm..:

您应该使用--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 formatsgcloud topic projections.


    您可以通过运行查看所有可能的字段gcloud compute instances list --format=flattened.

    对于某些命令,gcloud beta test android locales list您可以传递--verbosity=INFO标记并查找INFO: Display format.

    这是因为CSV数据不能像JSON或YAML那样嵌套,并且打印的数据结构可能是嵌套的.

推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有