自主实现一个shell--------minshell
shell:命令行解释器-------解释执行用户的输入(完成相对应的功能)
步骤
1. 获取标准输入中的字符串
2. 对字符串进行解析[ls -l -a][ls ] [-l ] [-a]
3. 创建子进程
4. 子进程中进行程序替换
5. 父进程进行进程等待
自主minshell实现
1. 获取标准输入
2. 解析输入得到【命令名】+【运行参数】
3. 创建子进程,子进程中进行程序替换
4. 进程等待-----避免僵尸进程
又失败了,匹配失败了,缓冲区里如果只有一个回车,取不出\n。
%[^\n] 从缓冲区取数据的时候,遇到\n为止:【ls -l】
经过这一步之后,缓冲区中留下了\n,但是\n取不出来,导致scanf非阻塞
但又取不出来最后的\n字符
%*c 从缓冲区中取出一个字符(丢弃)
如果他不是空白字符
isspace 判断是否是空白字符
取出了一个字符串。
contiune 为了避免解析失败(一个回车),没有获取到字符串,还去向子进程创建命令。
wait避免真正的替换时子进程出现僵尸进程
完成了ls的功能