文档首页/ 华为云命令行工具服务 KooCLI/ 常见问题/ 参数相关/ 提示重复的参数时如何处理?
更新时间:2023-03-13 GMT+08:00

提示重复的参数时如何处理?

问题背景

KooCLI在命令执行过程中会对参数的合法性进行检查,若命令中存在重复参数,视具体场景不同,会提示不同错误,例如:

  1. [USE_ERROR]重复的参数:*
  2. [USE_ERROR]重复的参数*,如非误输,请以cli-*为key输入其中的KooCLI系统参数
  3. [USE_ERROR]重复的*,如非误输,请将其中的API参数通过'--cli-jsonInput=xx'传入,详情参考...

在KooCLI系统参数列表中,部分参数同时存在两种形式,如“--cli-region”和“--region”。之所以同一系统参数同时支持两种参数名,是因为在KooCLI上开放的云服务中,存在部分API的某参数与系统参数重名的情况。

解决方案

  1. 若提示的错误信息为上述第一种,则命令中可能存在重复的非系统参数,请您检查是否误输。此错误也可能与系统解析处理命令内容有关,若参数值有特殊符号,请使用双引号引起,避免解析错误。
  2. 若提示的错误信息为上述第二种,说明命令中存在重复的旧系统参数,您可使用“hcloud <service> <operation> --help”命令,对比输出结果中“Params”的内容,即当前API的参数列表,确认目标API中是否存在该参数,或存在可自定义参数名称的参数(即名称为“{*}”的参数)。若不存在,请您检查是否误输。若存在,则您可能需要将同名的两个参数用于不同用途,即:其一作为目标API参数,另一作为系统参数。您可根据提示信息,使用新系统参数替换原命令中的旧系统参数。当命令中同时存在同一系统参数的新旧两种形式时,例如命令中存在“--cli-region=${regionValue1} --region=${regionValue2}”,KooCLI会根据当前API的参数列表自动识别各个参数的用途:
    • 若目标API中存在“region”同名参数,或可自定义参数名称,KooCLI会在命令执行过程中自动将“--cli-region”识别为系统参数,其值用于获取目标API的详情信息;而将“--region”识别为目标API的参数,其值将用于目标API的调用。
    • 若目标API中不存在“region”同名参数,也不可自定义参数名称,KooCLI会在命令执行过程中自动将“--cli-region”识别为系统参数,其值用于获取目标API的详情信息,同时会忽略命令中传入的“--region”参数。

    当您构建KooCLI命令时,对于其中的系统参数,为避免出现参数冲突而引起错误或交互,推荐使用新系统参数

  3. 若提示的错误信息为上述第三种,说明命令中存在重复的新系统参数,您可使用“hcloud <service> <operation> --help”命令,对比输出结果中“Params”的内容,即当前API的参数列表,确认目标API中是否存在该参数,或存在可自定义参数名称的参数(即名称为“{*}”的参数)。若不存在,请您检查是否误输。若存在(此种冲突的情况出现的概率极小),请您将命令中的API参数写入cli-jsonInput文件中,以JSON文件的方式传递API参数