• 两周的业余时间,写了个简单的shell


    Linux下的,环境是 Fedora

    图片 

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

    图片 

    类似于MFC消息映射表的方式,写完一个内部命令,只需要向这个头文件中,导入一个头文件,再写入命令处理函数,就可以把一个内部命令插入到内部命令表中 。好歹我也是看过猴姐书的人。。。。

    我的程序现在的缺点就是,不能执行终端的管道操作和重定向操作。

    管道操作和重定向操作其实很简单。但是问题在于,管道操作是可以无上限的

    比如:    ls | grep e | grep s | grep . | grep i | grep c

    只要我想,就可以无限地写下去,管道操作可以无上限,这样问题就来了。。如果是个输出管道,好办。但是输入管道怎么办。

    我这里测试的问题就是,输入管道,如果我在外面写入的话,外部命令的管道接收端不会搭理我,不知道为什么,不管我怎么写,它都不搭理我,不收我写的东西。。当然了,我确定对方命令已经在监听我的管道了,但是它就是不收我的东西。。。郁闷。。。

    还有个问题就是,Linux不同于Windows,父进程一定要后于子进程结束,不然的话,子进程就变成孤儿了。会有大问题。

    也就是说,父进程必须后结束,而且父进程也必须是接收端,这样。。。再回头看前面那条指令,比较麻烦了。。。

    由于管道操作麻烦,所以我干脆就没写,重定向操作类似,因为  >  等等操作也是可以无上限的。。。麻烦

    其他方面,没什么大问题了,包括 shell 脚本解释,来回的程序启动,都没大问题。。

    我自己写的东西,记录一下,业余两周时间,才写了这么点东西,不到1200行有效代码。

    不过我感觉,这个东西应该是我考虑得最周全的了。。。

    从上到下的框架设计,模块拆分,功能复用,功能添加,基本上大部分需要添加的,只要导入一个头文件,插入一个宏就好了

    明天交货了。先这样吧。。。
  • 相关阅读:
    RecyclerView 源码分析(一) —— 绘制流程解析
    sqlserver outer join
    获取最后一个标签 xpath
    pytesseract
    pytesseract代码优化
    sql server recursion
    sql
    sql server
    mssql乱码问题
    SQL
  • 原文地址:https://www.cnblogs.com/suanguade/p/4038018.html
Copyright © 2020-2023  润新知