news 2026/5/12 14:35:23

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/12 4:33:54

微信小程序终极任务管理神器:weapp-todos完全使用指南

微信小程序终极任务管理神器:weapp-todos完全使用指南 【免费下载链接】weapp-todos 一个简单的任务清单小程序, awesome weapp demo, todos, todolist 项目地址: https://gitcode.com/gh_mirrors/we/weapp-todos 还在为繁杂的日常任务感到头疼吗&#xff1f…

作者头像 李华
网站建设 2026/5/9 1:09:36

最小二乘问题详解4:非线性最小二乘

1. 引言在论述最小二乘问题的时候,很多文章都喜欢用拟合直线来举例,但是在现实中像拟合直线这样的线性最小二乘问题往往不是常态,现实世界中更多是像投影成像这种非线性最小二乘问题。在本文中,我们就讲解一下非线性最小二乘问题。…

作者头像 李华
网站建设 2026/5/11 3:29:35

不是所有旅行都要有意义,舒服才是答案

不晓得从什么时候开始,深度游成了旅游领域的热门词语,大家都不想匆匆地游览,就希望好好感受城市的“真实灵魂。认真思索一番,所谓深度或许算是一个虚假概念我们带着自身的学识,、成见还有期待出发,所看到的…

作者头像 李华
网站建设 2026/5/12 7:58:41

基于SpringBoot+Vue的大学生就业服务平台的设计与实现

一、前言 大学生就业服务平台管理系统按照操作主体分为管理员和用户。管理员的功能包括学生档案管理、字典管理、试卷管理、试卷选题管理、试题表管理、考试记录表管理、答题详情表管理、错题表管理、法律法规管理、法律法规收藏管理、法律法规留言管理、就业分析管理、论坛管理…

作者头像 李华
网站建设 2026/5/10 17:57:52

从零开始掌握LibreCAD:免费开源CAD软件的完全使用指南

从零开始掌握LibreCAD:免费开源CAD软件的完全使用指南 【免费下载链接】LibreCAD LibreCAD is a cross-platform 2D CAD program written in C14 using the Qt framework. It can read DXF and DWG files and can write DXF, PDF and SVG files. The user interface…

作者头像 李华