每个好的CLI应用程序必须具备哪些基本参数?

时间:2009-06-13 08:51:49

标签: command-line-interface

myapp /?

myapp -help

myapp -ver

等...

7 个答案:

答案 0 :(得分:11)

GNU Coding Standards授权--version--help我希望任何CLI程序都支持这些。除此之外,它实际上取决于程序是什么,但这里有一些其他建议:-q--quiet表示输出较少,-v--verbose表示更多输出,用于调试输出的-d--debug

答案 1 :(得分:8)

这取决于平台。

在Windows上,/?或/ h或/ help很常见。

在Unix上,命令应该有一个手册页。

在遵循Gnu约定的Unix变体(例如Linux)上,它应该响应--help和--version。更好的是,它可以与bash自动完成集成。

除此之外,请查看与您的相同区域中的其他程序,并在有意义的地方使用相同的选项。 E.g:

  • -r / - 递归递归目录
  • -q / - quiet to suppress output
  • -v / - 用于生成详细的诊断输出的详细信息
  • -n执行而不更改任何内容

如果你的程序接受文件名作为参数,那么常见的约定是单个连字符表示'从stdin读取'而双连字符表示'将下一个参数视为文件,即使它以连字符开头'。

答案 2 :(得分:5)

命令行参数的短版和长版。检查您使用的编程语言是否有getopt库端口。它将帮助您解析命令行参数。

--config-file=FILE | -C FILE
--help | -h
--usage | -u
--version | -v

为您的申请添加其他相关选项。

答案 3 :(得分:3)

我同意上面提到的所有论点,但是想指出另一件事:您可能希望您的应用程序接受所有参数的long,short和BSD样式。当然,如果您觉得没有一个用户会习惯使用它,那么可以省略BSD风格。长样式有助于增加参数的意义,并使它们在开始使用应用程序时更容易记住。

答案 4 :(得分:2)

我建议您选择帮助,版本,输出详细程度设置。其他开关取决于您的应用。

答案 5 :(得分:2)

-h是* nix必须的。我会说同样的/?在Windows上,但两种平台可用的程序通常都采用* nix风格。这可能是因为getopt和朋友。

一些要点:

-h, --help
-v, --version
-u, --usage

如果应用程序完全修改了任何文件:

--dry-run    Do not modify any files (but work as if you did)

如果应用程序使用配置文件,则使用指定配置文件或目录的选项。

一些主要的操作开关以非交互方式运行并完成工作:

mysql --execute="SELECT * FROM ..."
cmd.exe /C "dir"

答案 6 :(得分:2)

Eric S. Raymond在他的好书The Art of Unix Programming中概述了最常见的UNIX命令行选项。它主要谈论单字母选项,但在这方面却是一个很好的资源。