myapp /?
myapp -help
myapp -ver
等...
答案 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:
如果你的程序接受文件名作为参数,那么常见的约定是单个连字符表示'从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命令行选项。它主要谈论单字母选项,但在这方面却是一个很好的资源。