变量、通配符扩展及正则表达式使用指南
1. 变量概述
变量与条件执行是让一门语言真正实用的重要特性。在 shell 中,它能从环境读取数据并执行不同代码,使其成为实用的编程语言,而非简单的批处理器。shell 与多数语言稍有不同,变量的赋值和读取语法不同,且几乎没有不同类型变量的概念。
系统预定义了一些变量,像 UID 只能读取不能写入,而 RANDOM 若被赋值就会失去其特殊意义。
2. 通配符扩展
2.1 通配符的两种用途
在编写 shell 脚本时,通配符有两种用途。一是 shell 自身用于文件名扩展,例如用 a* 匹配以字母 a 开头的所有文件,用 *.txt 匹配所有文本文件;二是许多 shell 实用工具(如 sed、awk 和 grep)使用的更强大的正则表达式,其语法比 shell 更规范。bash shell 的通配符扩展比标准 Bourne shell 更强大。
2.2 文件名扩展(Globbing)
“Globbing” 一词源于原始命令 /etc/glob ,由 Unix 创始人之一 Dennis Ritchie 编写。最初它本应搜索整个 $PATH ,但原始实现仅搜索 /bin ,这被视为一个 bug。如今, which 命令承担了类似功能,而 “Globbing” 表示 “使用通配符扩展搜索文件”,且不涉及 PATH 变量。
文件名扩
超级会员免费看
订阅专栏 解锁全文
43

被折叠的 条评论
为什么被折叠?



