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