Linux 实现简易的 Shell 命令行解释器
一、前言
来制作一个简易的 [Shell 命令]行解释器。
首先这是与 Shell 的互动::
用下图的[时间轴]来表示事件的发生次序。其中时间从> > 左向右。shell
由标识为 sh 的方块代表,它随着时间的流逝从左向右移动。shell 从用
户读入字符串 "ls"。shell 建立一个新的进程,然后在那个进程中运行 ls
程序并等待那个进程结束。
然后 shell 读取新的一行输入,建立一个新的进程,在这个进程中运行程
序 并等待这个进程结束。所以要写一个 shell,需要循环以下过程:
1. 获取命令行
2. 解析命令行
3. 建立一个子进程(fork)
4. 替换子进程(execvp)
5. 父进程等待子进程退出(wait)