2 months ago
- 作者构建了一个名为'andsh'的玩具shell来更好地理解shell内部原理。
- 该shell支持'cd'、'pwd'、'echo'等基本命令,并通过'execvp'支持外部命令。
- 像'cd'这样的内置命令必须在shell进程中运行才能影响父shell的状态。
- 实现了环境变量扩展功能,支持'$HOME'和'$?'等变量。
- 通过'pipe()'和'dup2()'实现管道功能,可连接如'printf abc | tr a-z A-Z | rev'等命令。
- 该shell使用'readline'库实现行编辑、历史记录和tab补全功能。
- 目前缺少的功能包括引号处理、重定向以及更多内置命令。
- 该项目已在GitHub上开源,地址为healeycodes/andsh。