我想在 bash 中创建一个 cli,允许用户能够获取我们平台上的数据库实例列表。我希望他们能够输入以下内容:
$ dbinv instances show --environment=all
同样,如果他们想要查看名为 db1 的特定实例的用户,他们可能会键入:
$ dbinv instances users show --environment=production --instance=db1
从 cli 的角度来看,我们将如何开发它?我应该研究或探索什么?
我应该考虑 Ruby 或 Python 之类的东西,而不是 bash 吗?
答案1
您也许能够使用全部 3 种语言。我建议看看 svn、hg、git、docker 是如何做到的。
他们将有一个包装命令:例如
dbinv
。
它将查看第一个参数,然后调用辅助脚本。例如
dbinv show arg1
,会打电话«directory-containing-dbinv-commands»/dbinv-show arg1
。
这个包装器可以在 bash 中轻松完成。子命令可以用其他语言完成(使用#!
脚本顶部的 来指定语言)。
要进行包装,请查找"$1"
、"$@"
、shift
和exec
(不那么重要)。