Bash 学习 - 第2章:Definitions

本文为 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 如何执行命令。

相关推荐
xuchaoxin13754 小时前
bash@参数扩展@参数转换@参数扩展操作符
bash
提娜米苏14 小时前
非Root环境下的数据挂载解决方案:SSHFS与Mount详解
bash·sshfs
这儿有一堆花1 天前
任何东西都可以转成 Base64!?
bash
wasp5201 天前
Banana Slides 深度解析:AI Core 架构设计与 Prompt 工程实践
人工智能·prompt·bash
市场部需要一个软件开发岗位1 天前
一个无人机平台+算法监督平台的离线部署指南
java·python·算法·bash·无人机·持续部署
dingdingfish1 天前
Bash学习笔记总目录
bash·script·programming
代码AI弗森2 天前
Git Bash 与 PowerShell:定位差异、使用场景与选择建议
开发语言·git·bash
ajole2 天前
Linux学习笔记——基本指令
linux·服务器·笔记·学习·centos·bash
遨游xyz2 天前
策略模式笔记
开发语言·word·bash