使用结构化命令详解与实践

一、知识点概览

在 bash shell 脚本中,结构化命令用于控制命令的执行流程,通过条件判断决定是否执行特定命令。主要包括以下核心知识点:

命令结构用途核心特点
if-then基本条件判断根据命令退出状态码(0 为成功)执行命令
if-then-else双向条件判断命令执行失败时执行 else 分支
elif多条件判断串联多个条件,替代嵌套 if
test条件测试工具支持数值、字符串、文件三类条件判断
方括号[]test 的同义语法需注意前后空格,功能与 test 一致
双方括号[[ ]]高级字符串处理支持模式匹配,无需转义特殊字符
双括号(( ))高级数学运算支持算术运算符和自增 / 自减

二、详细知识点与实践

1. if-then 语句

概念:通过判断命令的退出状态码(0 为成功)决定是否执行后续命令。
语法

执行结果

plaintext

2. if-then-else 语句

概念:命令执行失败时,可执行 else 分支的命令。
语法

实践示例

执行结果

plaintext

3. elif 多条件判断

概念:通过 elif 串联多个条件,避免嵌套 if 的复杂结构。
语法

执行结果

plaintext

Pass

4. test 命令与方括号[]

概念:test 命令用于测试三类条件,方括号[]是其同义语法(需注意空格)。

(1)数值比较
运算符描述示例
-eq等于[ 5 -eq 5 ]
-ne不等于[ 5 -ne 3 ]
-gt大于[ 10 -gt 5 ]
-lt小于[ 3 -lt 5 ]

实践示例

执行结果10 < 20

(2)字符串比较
运算符描述示例
=相等[ "a" = "a" ]
!=不等[ "a" != "b" ]
-n非空[ -n "test" ]
-z为空[ -z "" ]

实践示例

执行结果Testing < testing(大小写 ASCII 值不同)

(3)文件比较
运算符描述示例
-e文件存在[ -e ./test.sh ]
-d是目录[ -d ./docs ]
-f是文件[ -f ./test.sh ]
-r可读[ -r ./test.sh ]

实践示例

执行结果./test.sh is a readable file

5. 复合条件逻辑

概念:使用&&(与)和||(或)组合多个条件。
语法

实践示例

6. 双方括号[[ ]]与双括号(( ))

(1)双方括号[[ ]]

特点:支持模式匹配,无需转义特殊字符(如>)。
示例

结果Hello, zhang

(2)双括号(( ))

特点:支持高级数学运算(如幂运算、自增)。
示例

结果5^2 is greater than 20

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值