摘要:
简单命令处理过程
我们已经看到,对列表命令和管道命令的处理,实际只是一个分解过程,最终命令的执行还是要由简单命令来完成。
在简单命令的处理过程中,必须考虑以下情况:
1、区分内部命令和外部命令
阅读全文
摘要:
命令处理
首先是对处于“shell语法规范”中最上层的列表命令的处理。
l 列表命令的处理过程:
依次检查参数数组中的每一个参数,如果是分号(;),那么就认为分号前面的所有参数组成了一个管道命令,调用 do_pipe_cmd() 来执行对管道命令的处理。如果扫描到最后,不再有分号出现,那么把剩下的所有参数作为一个管道命令处理
阅读全文
摘要:
根据这个思路,我们来看对应的 lex 规则。
%%
"\"" {BEGIN QUOTE;}
[^\n"]+ {add_arg(yytext);}
"\"" {BEGIN 0;}
阅读全文
摘要:
实现shell实例
程序主框架
主程序很简单,它在做一些必要的初始化工作之后,进入这样一个循环
阅读全文
摘要:
Shell作为一个命令语言解释器,有一套自己的语言规范,凡是符合这个规范的命令,它就可以正确执行,否则就会报错。这个语言规范是在 IEEE POSIX的第二部分:“shell和tools规范”中定义的。关于这份规范,可以在这里看到 阅读全文
摘要:
摘要:本期的目的是向大家介绍shell的概念和基本原理,并且在此基础上动手做一个简单shell解释器。同时,还将就用到的一些 linux环境编程的知识做一定讲解 阅读全文