现在位置: 首页 > bash
2020-02-25 16:25 工业·编程 ⁄ 共 3463字 评论 1 条
Shell从标准输入或脚本中读取的每行称为一个管道行,它包含一个或多个由0个或多个管道字符(|)分隔的命令。对每一个管道行,进行12个步骤的处理。 结合上图,这里给出命令行的12个步骤。 1.  将命令行分成由固定元字符集分隔的记号 : SPACE, TAB, NEWLINE, ; , (, ), <, >, |, & 记号类型包括单词,关键字,I/O重定向符和分号。 2. 检测每个命令的第一个记号,查看是否为不带引号或反斜线的关键字。 如果是...
阅读全文
2019-08-04 06:26 工业·编程 ⁄ 共 13130字 暂无评论
本文对bash的源码(版本:4.2.46(1)-release)进行简要分析。 数据结构 bash是用C语言写成的,其源码中只使用了少量的数据结构:数组,树,单向链表,双向链表和哈希表。几乎所有的bash结构都是用这些基本结构实现的。 源码中最主要的结构都定义在根目录下头文件command.h中。 单词 bash在不同阶段传输信息并处理数据单元的数据结构是WORD_DESC: typedef struct word_desc {   char *word;     &#...
阅读全文
2016-08-23 15:18 工业·编程 ⁄ 共 16820字 暂无评论
本文是本人学习shell实现机理,分析GNU bash源代码时总结的笔记性文档。通过分析bash源代码,阐述了其主要功能模块的组织和实现方式,同时对几个特定的工作流程进行了说明。 第1章 概述 1.1. bash   GNU bash是各类UNIX系统,特别是Linux下经典的shell。作为一个命令行解释器,它提供了强大的可编程功能,为用户提供了操作系统功能的良好接口。作为一个经典的开源项目,它的源代码结构较为清晰,可靠性、性能和易用性经历...
阅读全文