【问题标题】: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 --helpls --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 ...
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 2012-02-15
          • 1970-01-01
          • 1970-01-01
          • 2020-03-05
          • 1970-01-01
          • 2021-03-12
          • 1970-01-01
          • 2017-01-20
          • 1970-01-01
          相关资源
          最近更新 更多