1、 首先利用readline()函数读到用户输入的shell命令,采用一个数组来保存shell命令,数组有固定的大小。 2、 在main()函数中根据字符串中是否存在 "&" 字符判断是否为后台进程。如果是后台命令则判断是否是多条指令,如果不是将分割后的命令传递给pipel()函数,如果是的话分割之后利用while循环将命令传递给pipel()函数。如果不是后台进程,需要用waitpid()函数等待子进程结束后父进程才继续。 3、在pipel()函数中,将shell命令根据 "|" 字符分割成一个个重定向命令,利用fork ()得到子进程,并完成管道的设置,然后对每个重定向命令调用redir