更新时间:2023-03-08 GMT+08:00
分享

旧输出参数cli-output-rows,cli-output-cols,cli-output-num使用时的注意事项有哪些?

当命令中使用了“--cli-output-rows”,“--cli-output-cols”,“--cli-output-num”时,将会以table格式输出。使用table输出有利于用户对返回值中的关键信息进行提取。使用时各参数的功能如下:

  • --cli-output-cols:table输出时,指定需要打印的字段;
  • --cli-output-rows:table输出时,指定需要打印的层级。例如希望表格化一个json结构体,则参数值填写该json结构体的名称。
  • --cli-output-num:table输出时,是否打印表格的行号。取值为true或false,默认为true。

了解以上选项的使用方式,可参考旧输出参数cli-output-rows,cli-output-cols,cli-output-num如何使用

使用如上参数进行table输出时需要注意如下事项:

  • “--cli-output-cols”与“--cli-output-rows”可单独使用,也可组合使用:
    • 单独使用“--cli-output-rows”:

      在命令中单独使用“--cli-output-rows”传入调用结果中某json结构体的名称时,各层级之间以“.”分隔,目标json结构体的内容必须为数组类型,KooCLI会将该json结构体的内容以表格化输出。例如执行命令“hcloud configure list --cli-output-rows=profiles”,会以表格输出所有配置项信息。若“--cli-output-rows”中指定的json结构体的内容不是数组类型,会提示如下错误:

      [CLI_ERROR]table输出错误:缺少cli-output-cols参数

    • 单独使用“--cli-output-cols”:

      参数“--cli-output-cols”中可传入调用结果的json结构体根元素的字段,多个字段之间以“,”分隔。例如:执行命令“hcloud configure show --cli-profile=${profileName} --cli-output-cols=accessKeyId”,会以表格化方式输出指定配置项中的accessKeyId信息。单独使用“--cli-output-cols”时只能指定json结构体根元素的字段,否则会提示如下错误:

      [USE_ERROR]参数cli-output-cols中字段*对应的值为null

    • 组合使用“--cli-output-cols”与“--cli-output-rows”:

      当命令中同时使用“--cli-output-rows”和“--cli-output-cols”时,选项“--cli-output-rows”用来指定需要打印的层级,选项“--cli-output-cols”用来指定该层级中需要打印的字段。例如:执行命令“hcloud configure list --cli-output-rows=profiles --cli-output-cols=accessKeyId”,将以table方式输出所有配置项中的accessKeyId信息;

      “--cli-output-rows”的参数值中可使用“[n]”或“[m:n]”指定其中要打印的数组元素的索引位。指定“[n]”时会打印索引为n的值;指定“[m:n]”时会打印原数据m ~(n-1)索引位置的值。例如执行命令“hcloud configure list --cli-output-rows=profiles[0:2] --cli-output-cols=accessKeyId”,则以table方式输出配置项数组中索引位为0和1的配置项中的accessKeyId信息,组合使用“--cli-output-cols”与“--cli-output-rows”时还需注意如下事项:

      • 若“--cli-output-rows”中传入的数组的索引值是“[m:n]”,当n超出其数组长度时,会根据实际数据打印至其最大索引位。
      • 若“--cli-output-rows”中传入的数组的索引值是“[n]”,当n超出其数组长度时,会提示数组索引越界,如下:

        [USE_ERROR]参数cli-output-rows中的字段*输入错误:数组索引越界,数组长度为*,输入的索引为*

      • 组合使用“--cli-output-cols”与“--cli-output-rows”时,“--cli-output-rows”中的参数不要求一定是数组类型的参数,能指定到具体的层级即可。
  • 单独使用“--cli-output-num”时,无table输出效果。
  • 在同一命令中,“--cli-output-rows”,“--cli-output-cols”,“--cli-output-num”不可与“--cli-json-filter”同时使用,会因无法判断输出格式而导致错误。

相关文档