《Unix/Linux编程实践教程》第九章将第八章所编的shell做进一步的完善,包括:
1)加入命令行解析,方便用户在一行里输完命令和所有参数
2)加入if..else..控制语句
3)加入局部变量和环境变量
对于上章后面的练习题(解决SIGINT信号杀死shell的BUG),本章也给出了解决方案,简单流程如下:
在shell中忽略SIGINT和SIGQUIT,在子进程中对恢复信号的默认操作。
相关阅读:
代码如下,一共4个文件:
smsh.h:
smsh1.c:
splitline.c:
execute.c: