命令行是如何实现的,有没有相关的引擎或者是框架?
我想知道 很多 软件都有命令行 接口,最简单的就是windows的cmd ,
还有其他的程序
比如说mysql 有自己的命令行,能够通过命令行 让程序执行一定的程序
类似的还有很多,比如nodejs、habase、git等等,都有自己的命令行实现,
那么问题来了:这些命令行都是怎么实现的,难道他们在实现的时候,都是自己去写的?有没有通用的实现引擎或者框架,能够解析命令行的参数与命令,然后自动下发到函数代码?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(11)
要做的是,通过输入命令行,能够下发到指定的函数,并且有很好的提示功能~
看这个 http://www.netkiller.cn/linux/shell/utility/klish.html
一个Shell 框架,
osc的大神
@eechen 和他的盗版在知乎惨遭吊打,osc的小伙伴赶紧过去支援,传送门:https://www.zhihu.com/question/48350013 via falconchen
回复
不是什么东西都能粗略的呀,你这代码,真要拿来用的时候,那多出来的数据会加入你后续排序和计算欧几里得距离的过程,影响性能的呀。而且这种影响是毫无意义的浪费,要是写php都像你这么浪费,谁还敢用php. --via 张亦俊
命令行的渊源来自C语言,你可以找点资料看看
PHP的Interactive shell依赖的是libreadline这个库.
MySQL和SQLite的交互shell应该是自己实现的.
有没有想过命令行提示是怎么做的?
回复
也简单啊,你完全可以自己print到终端就行了啊。比如判断一下if (args.length == 0) {print help}.
本来就可以从命令行接收参数啊,比如java的main函数,构造构造参数不就有String[] args么,这个args数组存的就是命令行参数啊,你自己解析就行了。不想自己解析就调用一些现成的类库帮你解析参数也行
多谢前辈交流,根据您的思路,我又搜了 一下,发现 搜索 CLI 会有很多库来解决问题!
每种语言都有自己的命令参数解析库的, 比如python的sys.argv, c的getopt函数(http://www.cnblogs.com/runnyu/p/4943704.html).