Linux下Shell的实现说明

时间:2015-06-30 04:07:27
【文件属性】:

文件名称:Linux下Shell的实现说明

文件大小:105KB

文件格式:DOC

更新时间:2015-06-30 04:07:27

shell c linux

1、 首先利用readline()函数读到用户输入的shell命令,采用一个数组来保存shell命令,数组有固定的大小。 2、 在main()函数中根据字符串中是否存在 "&" 字符判断是否为后台进程。如果是后台命令则判断是否是多条指令,如果不是将分割后的命令传递给pipel()函数,如果是的话分割之后利用while循环将命令传递给pipel()函数。如果不是后台进程,需要用waitpid()函数等待子进程结束后父进程才继续。 3、在pipel()函数中,将shell命令根据 "|" 字符分割成一个个重定向命令,利用fork ()得到子进程,并完成管道的设置,然后对每个重定向命令调用redirect()函数(如果没有 "|",则将整个shell命令调用redirect()函数)。 4、在redirect函数里面,根据有没有”>”,”<”来判断是否需要重定向。如果不需要重定向,就直接对参数列表调用execv(char *, char **)函数执行命令。如果需要重定向,进行相应的处理,再调用execv()函数。


网友评论

  • 实现功能没问题
  • 资源不错,刚好是我想要的!用了一下,很好!
  • 还不错,实现的比较完整,谢谢!