加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – getopt_long vs getopt_long_only

发布时间:2020-12-14 00:33:10 所属栏目:Linux 来源:网络整理
导读:要做一个合适的 Linux / unix风格的应用程序,最好的选择是什么(例如,afaik ls使用getopt_long但是例如ffmpeg getopt_long_only). 你推荐哪一个? 干杯, 解决方法 在我看来,以下事情通常是正确的: 用户喜欢长而自然的语言选择,因为它们易于记忆. 编写脚本以
要做一个合适的 Linux / unix风格的应用程序,最好的选择是什么(例如,afaik ls使用getopt_long但是例如ffmpeg getopt_long_only).
你推荐哪一个?

干杯,

解决方法

在我看来,以下事情通常是正确的:

>用户喜欢长而自然的语言选择,因为它们易于记忆.
>编写脚本以包装具有数百个选项的程序的用户喜欢短选项.

如果一个程序变得足够大,它最终会耗尽短的选项组合,与规范选项相比,它们具有任何意义.例如,-Z可能与以完全不同的字母开头的长选项相同.那时,特别是对于单个维护者来说,解析代码的选项变得令人头疼.

发生这种情况时,你有几个选择:

>使用像gengetopt这样的东西从模板中为您编写代码
>只使用长期选项(通常是个坏主意)
>尝试将程序保持在52个选项(a-z A-Z)(通常是一个坏主意)
>实现选项,其中短选项只是变为不接受参数的开关,对那些选项使用长选项
>一系列其他方法,对您来说非常有意义,对用户没什么意义

混合在不同的地方,你真的开始抓住痛苦.

当我坐下来编写一个需要很多选项的工具时,我通常要做的第一件事就是编写代码来解析参数,这有助于规划程序的流程并成为一个大纲.您只需在此之后使每个选项都有效.

换句话说,如果你达到选项变成如此慢性疼痛的程度,它通常表明一个程序很快就会超出其计划范围.

无论如何,为了使我的冗长的答案结束,通常更好的是尽可能保持compat getopt()行为.获取用户指示的代码只是开展业务的成本,因此您应该尽可能完全关注什么能够带来更好的用户体验.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读