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