本文为 Bash Reference Manual第2章:Definitions 的读书笔记。
完整的笔记目录参见Bash学习笔记总目录。
2 Definitions
这些定义将在本手册的其余部分中使用。
-
POSIX
基于 Unix 的开放系统标准系列。Bash 主要关注 POSIX 1003.1 标准的 Shell 和实用程序部分。
-
空白(blank)
空格或制表符。
-
内置(builtin)
由 shell 本身内部实现的命令,而不是由文件系统中某个可执行程序实现的命令。
-
控制操作符(control operator)
执行控制功能的标记。它是换行符或以下之一:
'||'、'&&'、'&'、';'、';;'、';&'、';;&'、'|'、'|&'、'(' 或 ')'。
-
退出状态(exit status)
命令返回给其调用者的值。该值限制为 8 位,因此最大值为 255 。通常0表示成功 ,非0表示失败。
-
字段(field)
由 shell 扩展之一产生的文本单元。扩展后,执行命令时,结果字段将用作命令名称和参数。
-
文件名(filename)
用于标识文件的字符串。
-
作业(job)
由管道组成的一组进程,以及从管道派生的任何进程,它们都位于同一进程组中。
-
作业控制(job control)
用户可以通过该机制有选择地停止(暂停)和重新启动(恢复)进程的执行。
-
元字符(metacharacter)
不加引号时用于分隔单词的字符。元字符是空格、制表符、换行符或以下字符之一:"|"、"&"、";"、"("、")"、"<"或">"。
-
名称(name)
仅由字母、数字和下划线组成,以字母或下划线开头的单词。名称用作 shell 变量和函数名称。也称为标识符(identifier)。
-
运算符(operator)
控制运算符或重定向运算符。有关重定向运算符的列表,请参阅重定向。操作符至少包含一个未加引号的元字符。
-
进程组(process group)
一组相关进程,每个进程都具有相同的进程组 ID。
-
进程组 ID(process group ID)
表示进程组在其生命周期内的唯一标识符。
-
保留字(reserved word)
对 shell 具有特殊含义的字。大多数保留字引入了 shell 流控制结构,例如 for 和 while。
-
返回状态(return status)
退出状态的同义词。
-
信号(signal)
内核可以通过该机制将系统中发生的事件通知进程。
-
特殊内置命令(special builtin)
已被 POSIX 标准归类为特殊的 shell 内置命令。
-
标记(token)
shell 视为单个单元的字符序列。它可以是单词或操作符。
-
单词(word)
shell 视为一个单元的字符序列。单词不得包含未加引号的元字符。
还记得上一章介绍的 compgen 命令吗?
bash
# 列出所有的保留字(key word)
$ compgen -k
if
then
else
elif
fi
case
esac
for
select
while
until
do
done
in
function
time
{
}
!
[[
]]
coproc
3 Basic Shell Features
Bash 是"Bourne-Again SHell"的缩写。Bourne shell 是 Stephen Bourne 最初编写的传统 Unix shell。Bourne shell 的所有内置命令都可以在 Bash 中使用,求值(evaluation)和引用(quoting)规则取自"标准"Unix shell 的 POSIX 规范。
本章简要总结了 shell 的"构建块":命令、控制结构、shell 函数、shell 参数、shell 扩展、重定向(一种从命名文件直接输入和输出的方式)以及 shell 如何执行命令。