两周的业余时间,写了个简单的shell
Linux下的,环境是 Fedora
实现了基本的内部命令功能,及比较完善的内部命令框架。
类似于MFC消息映射表的方式,写完一个内部命令,只需要向这个头文件中,导入一个头文件,再写入命令处理函数,就可以把一个内部命令插入到内部命令表中 。好歹我也是看过猴姐书的人。。。。
我的程序现在的缺点就是,不能执行终端的管道操作和重定向操作。
管道操作和重定向操作其实很简单。但是问题在于,管道操作是可以无上限的
比如: ls | grep e | grep s | grep . | grep i | grep c
只要我想,就可以无限地写下去,管道操作可以无上限,这样问题就来了。。如果是个输出管道,好办。但是输入管道怎么办。
我这里测试的问题就是,输入管道,如果我在外面写入的话,外部命令的管道接收端不会搭理我,不知道为什么,不管我怎么写,它都不搭理我,不收我写的东西。。当然了,我确定对方命令已经在监听我的管道了,但是它就是不收我的东西。。。郁闷。。。
还有个问题就是,Linux不同于Windows,父进程一定要后于子进程结束,不然的话,子进程就变成孤儿了。会有大问题。
也就是说,父进程必须后结束,而且父进程也必须是接收端,这样。。。再回头看前面那条指令,比较麻烦了。。。
由于管道操作麻烦,所以我干脆就没写,重定向操作类似,因为 > 等等操作也是可以无上限的。。。麻烦
其他方面,没什么大问题了,包括 shell 脚本解释,来回的程序启动,都没大问题。。
我自己写的东西,记录一下,业余两周时间,才写了这么点东西,不到1200行有效代码。
不过我感觉,这个东西应该是我考虑得最周全的了。。。
从上到下的框架设计,模块拆分,功能复用,功能添加,基本上大部分需要添加的,只要导入一个头文件,插入一个宏就好了
明天交货了。先这样吧。。。

实现了基本的内部命令功能,及比较完善的内部命令框架。

类似于MFC消息映射表的方式,写完一个内部命令,只需要向这个头文件中,导入一个头文件,再写入命令处理函数,就可以把一个内部命令插入到内部命令表中 。好歹我也是看过猴姐书的人。。。。
我的程序现在的缺点就是,不能执行终端的管道操作和重定向操作。
管道操作和重定向操作其实很简单。但是问题在于,管道操作是可以无上限的
比如: ls | grep e | grep s | grep . | grep i | grep c
只要我想,就可以无限地写下去,管道操作可以无上限,这样问题就来了。。如果是个输出管道,好办。但是输入管道怎么办。
我这里测试的问题就是,输入管道,如果我在外面写入的话,外部命令的管道接收端不会搭理我,不知道为什么,不管我怎么写,它都不搭理我,不收我写的东西。。当然了,我确定对方命令已经在监听我的管道了,但是它就是不收我的东西。。。郁闷。。。
还有个问题就是,Linux不同于Windows,父进程一定要后于子进程结束,不然的话,子进程就变成孤儿了。会有大问题。
也就是说,父进程必须后结束,而且父进程也必须是接收端,这样。。。再回头看前面那条指令,比较麻烦了。。。
由于管道操作麻烦,所以我干脆就没写,重定向操作类似,因为 > 等等操作也是可以无上限的。。。麻烦
其他方面,没什么大问题了,包括 shell 脚本解释,来回的程序启动,都没大问题。。
我自己写的东西,记录一下,业余两周时间,才写了这么点东西,不到1200行有效代码。
不过我感觉,这个东西应该是我考虑得最周全的了。。。
从上到下的框架设计,模块拆分,功能复用,功能添加,基本上大部分需要添加的,只要导入一个头文件,插入一个宏就好了
明天交货了。先这样吧。。。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」