news 2026/5/26 5:33:05

6、Bash表达式与模式匹配全解析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
6、Bash表达式与模式匹配全解析

Bash表达式与模式匹配全解析

1. 表达式基础

表达式是用于计算值的公式。Bash有多个内置命令和函数来计算表达式,不同的命令和函数语法和特性有所不同,有时同一表达式有多种计算方式,且存在一些特殊特性用于罕见情况,所以很少有Bash程序员能记住所有细微差别。

2. 扩展类型

Bash中的表达式不仅包含算术运算,还涉及字符串替换,这个过程称为扩展。Bash将扩展分为以下六类,且按固定顺序求值:
1. 文件名花括号扩展
2. 路径名波浪号扩展
3. 美元符号、变量和算术表达式
4. 命令替换(从左到右执行)
5. 单词分割(即通过空白字符或IFS变量内容分隔参数)
6. 路径名扩展(即路径名模式匹配)

扩展顺序很重要,可能会导致脚本出现微妙问题。例如,在变量中使用带波浪号的路径时:

$ ls -d ~/tmp /home/kburtch/tmp $ TEMP="~/tmp" $ ls $TEMP ~/tmp not found

这是因为变量扩展在波浪号扩展之后,Bash先进行波浪号扩展,找不到波浪号后进行变量扩展,导致波浪号留在命令中,ls命令找不到目录。因此,变量赋值路径中不应使用波浪号,应使用HOME变量。

除上述扩展外,其他类型的扩展由命令处理,这些命令在Bash完成六种扩展后执行。有两个常见的内置命令用于解释表达式:
-test命令:检查多种条件并

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/25 11:49:18

Ridit检验 R代码实现

一、公式声明需要声明,这一实现使用的标准组的Ridit方差为贝塞尔校正版本,而卡方统计量的公式采用如下形式:——式子1其中:注意以下公式默认了有序评分对应的隐连续得分是服从均匀分布的,因此才将,然后把式…

作者头像 李华
网站建设 2026/5/25 20:23:14

基于SSM+Vue的个人理财系统的设计与实现

前言 本个人理财系统管理员功能有个人中心,用户管理,账单类型管理。用户功能有个人中心,收入账单管理,支出账单管理,理财计划管理,统计分析管理,备忘录管理等。因而具有一定的实用性。 本站是一…

作者头像 李华
网站建设 2026/5/26 4:07:18

赛马娘本地化补丁完整指南:5分钟实现游戏完美汉化

赛马娘本地化补丁完整指南:5分钟实现游戏完美汉化 【免费下载链接】umamusume-localify Localify "ウマ娘: Pretty Derby" DMM client 项目地址: https://gitcode.com/gh_mirrors/um/umamusume-localify 赛马娘本地化补丁是专为《赛马娘: Pretty D…

作者头像 李华
网站建设 2026/5/25 18:44:16

终极ComfyUI效率节点完整安装教程:5步实现AI绘画工作流革命

终极ComfyUI效率节点完整安装教程:5步实现AI绘画工作流革命 【免费下载链接】efficiency-nodes-comfyui A collection of ComfyUI custom nodes.- Awesome smart way to work with nodes! 项目地址: https://gitcode.com/gh_mirrors/eff/efficiency-nodes-comfyui…

作者头像 李华
网站建设 2026/5/25 10:26:41

【CMake 】CMake 中 add_executable 与 target_sources 详解

CMake 中 add_executable 与 target_sources 详解 📖 前言 在 CMake 构建系统中,add_executable 和 target_sources 是两个用于管理源文件的重要命令。理解它们的关系、区别和使用场景,对于编写高质量的 CMake 配置文件至关重要。本文将深入探…

作者头像 李华