【问题标题】:Is there a standard for the order of arguments printed in usage statement of a command line tool? [closed]命令行工具的使用说明中打印的参数顺序是否有标准? [关闭]
【发布时间】:2011-05-11 05:38:58
【问题描述】:
向我尊敬的专家致敬!
我正在编写一个命令行工具(类似于 ls 或 cat 或 uname 等),我想知道是否有最佳实践来对使用语句中的参数进行排序。
我很困惑,因为ls 的用法语句按字母顺序打印参数,而cat 的用法语句没有!
试试cat --help 和ls --help。
如果有标准,你也可以给我参考一些文档吗?
【问题讨论】:
标签:
shell
command-line
coding-style
command-line-arguments
【解决方案1】:
虽然有一些通用约定,但我认为您已经熟悉了,但没有标准。但这不是 100%。
【解决方案2】:
哈,标准!不,当然不是那样的。选择你最喜欢的,无论哪个看起来不错,组织良好,并且已经在每个人的计算机上,然后模仿它。
我的意见如下:
- 我没有看到任何按字母顺序排列的值。
- 按逻辑排序,分类,把有用的东西放在第一位。
- 确保解析引擎可靠且“标准”,最好使用其他人的。如果 Boost 的 Program Options 或 Python 的 optparse 使用适合您的语言,它们会很好。大多数其他语言也有一些。
- 确保包含许多涵盖使用范围的示例。
【解决方案3】:
可以这么说没有标准,但它们可能应该按大多数人使用它们的使用模式进行分组(不是按字母顺序)。
与所有文档和技术写作一样,您首先必须确定您的受众。
例如,当您想弄清楚如何让sort 忽略大小写时,您很少知道它是-f(折叠大小写,谁他妈想到了?) .最有用的输出将有一个关于数据转换选项的部分(例如,忽略大小写,将重音字符视为不重音),另一个关于键选择(例如,哪些字段或子字段),另一个键比较(例如,字母,数字, 排序规则)等等。
无论如何,已经知道-f 选项的人也知道如何使用less 来搜索该选项,而无需翻阅大量不需要的信息:-)
事实上,我会更好。有两个可能的输出。将默认值设为基于使用的格式,但最重要的是,将第一次使用作为获取字母列表的方式:
pax> paxprog --help
paxprog - truly an amazing program.
paxprog is capable of doing anything you want.
Help output options:
--help
Usage-based assistance (default).
--alpha-help
All options in alphabetical order.
Coffee-making options:
--temp=chilled|tepid|hot|damnhot
Selects the temperature.
Blah, blah, blah ...