项目链接:https://github.com/nj-jay/go-shell

golang极其的适用于写命令行程序。

其天然的跨平台性,且直接编译成二进制程序,runtime环境全部打包到二进制文件中,非常的方便。

几个月前用golang实现了一个go-shell,由于无法实现自动补全功能,所以项目暂时就停止了下来。

但是在这个小项目中,我也学习到了很多的内容,对于学习Golang绝对是一个利器。

先来预览一下。

将linux中的命令全部使用golang进行重写,尽管来说是在无限的造轮子,但是正是在造轮子的过程中学习到了很多的东西。

感觉还蛮酷的哦!

最让我觉得自豪的是两个命令实现的还阔以。

一个是并发下载文件的命令wget。

另外为了支持日后的更新,我编写了一个update命令。

当我发布了新的命令并将该二进制文件发布到我的服务器时,使用upgrade命令会将该二进制文件添加到环境变量中。

而且你也可以编写新的命令,从而从某种程度上实现了插件化,非常的容易扩展。

但是由于无法实现自动补全命令,因此停滞了好久,如果你喜欢这个小项目,可以联系我一起开发。

如果能实现自动补全命令,嘿嘿,那就真的太棒了!