代码之家  ›  专栏  ›  技术社区  ›  pavanlimo

命令行工具的usage语句中是否有打印参数顺序的标准?[关闭]

  •  2
  • pavanlimo  · 技术社区  · 14 年前

    向我尊敬的专家们问好!

    我正在编写一个命令行工具(类似于ls、cat或uname等),我想知道是否有最佳实践来对usage语句中的参数进行排序。

    我很困惑因为, ls 的usage语句按字母顺序打印参数,其中 cat 的用法语句没有!

    尝试 cat --help ls --help .

    如果有标准的话,你能给我参考一些文件吗?

    4 回复  |  直到 14 年前
        1
  •  1
  •   Scott Stafford    14 年前

    哈,标准!不,当然不是这样的。选择你最喜欢的,无论哪个看起来不错,组织良好,已经在每个人的电脑上,并模仿它。

    我的意见如下:

    • 我看不出字母顺序的值。
    • 按逻辑排序,分类,把有用的东西放在第一位。
    • 确保解析引擎是可靠的和“标准的”,最好使用其他人的。Boost的 Program Options 或者蟒蛇的 optparse 如果他们的语言对你来说是好的。大多数其他语言也有一些。
    • 一定要包括许多跨越使用范围的例子。
        2
  •  1
  •   paxdiablo    14 年前

    可以说没有标准,但它们可能应该按使用模式分组,这是大多数人使用它们的方式(不是按字母顺序)。

    和所有的文档和技术写作一样,你首先要决定你的读者。

    例如,当你想知道如何 sort 忽略这个案子,你很少知道 -f (fold case,他妈的想到了 那个? ). 最有用的输出将有一节关于数据转换选项(例如,忽略大小写,将重音字符视为非重音字符),另一节关于键选择(例如,哪些字段或子字段),另一节关于键比较(例如,字母、数字、排序规则)等等。

    不管怎样,那种已经知道 -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 ...
    
        3
  •  1
  •   William Pursell    12 年前

    当然有一个标准: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html . 注意第3段:“选项通常按字母顺序列出,除非这会使实用程序描述更加混乱。”

        4
  •  0
  •   Assaf Lavie    14 年前

    没有标准,虽然有一些通用的约定,我想,你已经熟悉了。但这并不是100%。

    推荐文章