发明命令名称的好方法是什么?

时间:2009-08-03 15:37:45

标签: command-line

我们正在努力为我们的所有目的“开发人员助手”工具提供一个命令名,我们正在我们的项目中使用它。它就像我们现有工具的包装器,如cmakehg。命令的目的只是通过将多个命令合并为一个(例如,发布包)来使我们的生活更轻松。例如,我们有以下命令:

do conf
do build
do install
do publish

我们考虑了一些含糊不清的名称,例如do(如上所述)和run,但很明显,do是一个Linux bash命令,run非常含糊不清

我们希望我们的命令是2个字符短,最好 - 但谁认为我们问的是不可能的?有没有一种实用的方法可以检查命令名称的可用性(除了只是在终端中键入它们),还是仅仅选择一个并希望其他人不会使用它?我们是否担心什么?

16 个答案:

答案 0 :(得分:6)

由于它是“开发人员助手”工具,为什么不使用hm [run|build|port|deploy|test],帮助我......

答案 1 :(得分:3)

给它一个详细的名称,然后让每个人将它别名为他们想要的任何东西。确保在其他脚本中使用详细名称,以消除歧义。

这样,每个用户都可以使用对他/她有意义的东西,并且脚本更易读和更容易搜索(例如,grepping 4“our_cool_tool”通常会产生比“run”更好的结果)

答案 2 :(得分:2)

在这种情况下,有多少2个字符的单词有用?我想你需要四个。考虑到这一点,这里有一些建议。

omni
torq
fluf
mega
spif
crnk
splt
argh
quat
drul
scud
prun
sqat
zoom
sizl

如果你需要,我还有更多。

答案 3 :(得分:2)

要检查命令名称的可用性,我建议查找路径中目录中的所有双字母文件名。您可以使用这样的脚本

for item in `echo $PATH | sed 's/:/ /g'` ; do
        ls -1d $item/??
done

它不会在你的shell中显示builtins(就像你提到的那样“do”),但这是一个好的开始。

改变?至 ???对于三个字母的文件等。

我要投票支持qp(快速套餐?)因为它易于发音,易于打字,并且易于记住键盘上的按键位置。

答案 4 :(得分:2)

答案 5 :(得分:1)

我认为run是一个好名字,至少任何下载你的项目的人都知道该怎么做。不带参数调用它会显示您的选项。

即使'do'也会这样做,我认为你可以使用反引号从bash脚本运行它。

另外请记住,运行不带参数的工具会告诉您有哪些选项。

答案 6 :(得分:1)

我使用“asd”。它很简短,大多数开发人员不假思索地输入它 (哦,你可以随后声称它代表一些“开发人员的高级脚本”,如果你需要在几年后为自己辩护)

答案 7 :(得分:1)

fu怎么样?就像功夫一样。这是一个特殊用途的工具。并且真的很容易输入。

答案 8 :(得分:0)

使用makefiles为您完成所有事情。

答案 9 :(得分:0)

如何将其称为描述性内容,例如“build_runner”,然后将其别名化为.bashrc中的“br”(或首选首字母缩略词)?

答案 10 :(得分:0)

有一个非常糟糕的工具叫做cleartool(clearcase的一部分),人们会将它们的机器别名为“ct”。也许您可以使用更长的命令并建议用户使用别名。

答案 11 :(得分:0)

最好做一些像ire_and_curses建议的事情,将其描述为名称,然后将其别名为2个字母的命令。如果我选择的话,我会将它命名为dev_help并将其别名为dh。

答案 12 :(得分:0)

我觉得你什么都不担心。将程序安装为'the-command-to-do-evertyhing-and-if-you-you-you-make-your-own-alias-for-it-you-you'。我不认为对于任何现代文件系统来说太长了,但你可能需要将它缩短为'tctdeaiydmyoafiys'。查看使用的常用别名,然后将程序名称更改为该名称。换句话说:不做决定,让自然选择为你决定。如果您正在与< 10,这甚至不应该导致任何问题。

答案 13 :(得分:0)

devtool别名称为dt

答案 14 :(得分:0)

我喜欢的自定义工具以前缀'jj-'开头。我可以输入(用大指数电源)'jj'并查看我所有的个人命令。此外,它们按字母顺序列表组合在一起。 'J'不是build-inc命令的常用字符,但你可以自己选择。

由于你需要两个字符,你可以只使用'zz',或以'z'开头的东西。

您确定要将所有功能放在一个命令中吗?这可能会同时过度约束和过度加载接口。

答案 15 :(得分:-2)

do conf
do build
do install
do publish