2020-02-25 16:25
⁄ 工业·编程
⁄ 共 3463字
Shell从标准输入或脚本中读取的每行称为一个管道行,它包含一个或多个由0个或多个管道字符(|)分隔的命令。对每一个管道行,进行12个步骤的处理。
结合上图,这里给出命令行的12个步骤。
1. 将命令行分成由固定元字符集分隔的记号 :
SPACE, TAB, NEWLINE, ; , (, ), <, >, |, &
记号类型包括单词,关键字,I/O重定向符和分号。
2. 检测每个命令的第一个记号,查看是否为不带引号或反斜线的关键字。 如果是...
bash, 源码阅读全文
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; ...
bash, 源码阅读全文
2016-08-23 15:18
⁄ 工业·编程
⁄ 共 16820字
本文是本人学习shell实现机理,分析GNU bash源代码时总结的笔记性文档。通过分析bash源代码,阐述了其主要功能模块的组织和实现方式,同时对几个特定的工作流程进行了说明。
第1章 概述
1.1. bash
GNU bash是各类UNIX系统,特别是Linux下经典的shell。作为一个命令行解释器,它提供了强大的可编程功能,为用户提供了操作系统功能的良好接口。作为一个经典的开源项目,它的源代码结构较为清晰,可靠性、性能和易用性经历...
bash, 原理, 源码阅读全文