首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更好的命令行界面

更好的命令行界面
EN

Stack Overflow用户
提问于 2011-04-27 02:28:45
回答 4查看 219关注 0票数 0

我已经开发了一个可以缓存多个包的应用程序。此应用程序的CLI界面如下所示

代码语言:javascript
复制
submit -z pkg1.zip -c pkgChecksum1 -t pkgType1 -s pkgSize1 -z pkg2.zip -c pkgChecksum2 -t pkgType2 -s pkgSize2 

因此,这里提交两个包pkg1.zip和pkg2.zip,它们分别具有校验和pkgChecksum1和pkgChecksum2,包类型分别为pkgType1和pkgType2,大小分别为pkgSize1和pkgSize2。

我们还为应用程序提供了基于XML的输入,如下所示

代码语言:javascript
复制
submit --script an.xml

an.xml在哪里

代码语言:javascript
复制
<?xml version="1.0" encoding="ISO-8859-1"?>
<packages>
<package name="pkg1.zip" checksum="pkgChecksum1" type="pkgType1" size="pkgSize1" />
<package name="pkg2.zip" checksum="pkgChecksum2" type="pkgType2" size="pkgSize2" />
</packages>

这在功能上等同于第一个CLI方法。

我们计划让它变得更加用户友好,有什么想法需要改进吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-04-27 02:59:33

是否所有选项都是必需的?或者是否有默认的类型、大小和校验和?如果没有默认值,你可以去掉标签,只需要四个一组的参数。

代码语言:javascript
复制
submit pkg1.zip pkg1Cksum pkg1type pkg1sz pkg2.zip pkg2Cksum pkg2type pkg2sz 

在这种情况下,另一种选择是使用标记,但会提示用户缺少值。

如果有默认值(可以自动计算校验和和大小吗?),则允许选择性覆盖:

代码语言:javascript
复制
submit pkg1.zip -t pkg1type pkg2.zip -t pkg2type -s pkg2szOverride

另一个可能有用的选项是-a existingCache,它附加到现有文件(如果不存在,则创建它)。这将允许用户将其分解为几个可人工操作的命令行

代码语言:javascript
复制
   submit -a mycache pkg1.zip -t pkg1type -s pkg1sz
   submit -a mycache pkg2.zip -t pkg2type -s pkg2sz

根据评论,还有一个选择:

代码语言:javascript
复制
  submit -x pkg1.zip:2034 0x232D -y pkg2.zip pkg3.zip:123

其中-x、-y等是不同支持的“类型”的标志。因此,此行提交大小为2034、类型X和校验和的pkg1;类型为y的pkg2,未指定大小或校验和;以及大小为123且未指定类型或校验和的pkg3。

票数 2
EN

Stack Overflow用户

发布于 2011-04-27 02:38:52

您应该为CLI中的各种参数提供长选项和短选项。例如

代码语言:javascript
复制
submit --package pkg1.zip --checksum pkgChecksum1 --type pkgType1 --size pkgSize1 --package  pkg2.zip -checksum pkgChecksum2 --type pkgType2 --size pkgSize2
票数 0
EN

Stack Overflow用户

发布于 2011-04-27 03:01:54

很难说你应该做什么。这取决于谁是您的应用程序的目标受众。两种可能的选择:

CLI图形用户界面,适用于不知道/不敢使用CLI

  • Interactive

  • 的用户,类似于:

包名:> pkg1.zip校验和:> pkgChecksum1类型: pkgType1

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

https://stackoverflow.com/questions/5794778

复制
相关文章

相似问题

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