首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有基本选项和子命令的命令行接口设计

带有基本选项和子命令的命令行接口设计
EN

Stack Overflow用户
提问于 2011-07-06 01:53:53
回答 1查看 603关注 0票数 4

我正在为我正在编写的工具开发一个命令行界面。我在一个类似Fabric的fab工具和一个类似svn的命令行工具的接口之间抛出。

fab的使用信息:

代码语言:javascript
复制
Usage: fab [options] <command>[:arg1,arg2=val2,host=foo,hosts='h1;h2',...] ...

svn的使用信息:

代码语言:javascript
复制
usage: svn <subcommand> [options] [args]

请注意,svn还支持--version--quiet两个选项(至少我正在使用的选项)。

我的问题是:

  1. 在命令行工具中,fab的cli (包含多个命令,每个命令都有参数)的设计是否通用?在我看来,svn工具的cli似乎更常用(但不确定)。
  2. 使用褶皱(或fab解析)实现fab的cli会很简单吗?
  3. 如果我决定使用svn的cli,这能用plac实现吗?我喜欢plac,虽然我还没有弄清楚如何直接向工具添加选项,而不是子命令。它肯定可以使用argparse解析实现。

P.S.:fab的cli吸引我的唯一原因是一个人可以在一步内完成多个任务,但是我主要关心的是实现的容易程度。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-07-06 02:15:23

  1. 颠覆的方式更标准。
  2. 可能不会。
  3. 你可以用手斧切黄油。

如果您想简化文档和使用,请使用SVN的方式。我明白为什么fab的方式看起来很吸引人,这对程序员来说是合乎逻辑的。但对于用户来说,这实际上是复杂和混乱的。

Plac看起来很酷,但是你需要安装它。你的用户也是。

当涉及到软件工程时,我喜欢遵循一个简单的规则:保持简单和标准,当您真正需要时使用尖端技术。复古兼容性应在可能的情况下实现。

然而,你只是在胡闹,不打算分配你的工作,然后继续下去,使用flac ;)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6590757

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档