Linux & Shell 编程基础 —— 结构化命令 课堂笔记
一、if-then 系列语句
1. 基础 if
语法:if 命令; then 指令; fi
逻辑:if 后命令退出码 0(执行成功),执行 then 代码;非 0 则跳过。
简写:if 命令; then 指令 fi
2. if-then-else
一条成立执行 then,不成立执行 else 分支。
3. 嵌套 if /elif(多分支)
嵌套 if:else 内部再写 if
elif:连续多条件判断,替代多层嵌套
语法:
bash
运行
if 条件1; then
指令1
elif 条件2; then
指令2
fi
二、test 条件测试([ ]等价 test)
格式:if [ 条件 ]; then 指令 fi
方括号前后必须加空格
三类测试:
数值比较(仅支持整数)
-eq相等、-gt大于、-lt小于等
字符串比较
=相等、!=不等、-n非空、-z空串;>/<需转义
文件目录测试
-d是目录、-e文件存在、-w可写、-x可执行
三、复合条件测试
&& 逻辑与:两个条件同时成立
|| 逻辑或:任意一个成立
示例:if [ -d $dir ] && [ -w file ]; then
四、双方括号 / 双括号高级语法
(( )) 双括号:高级数学运算(平方、自增、位移等,不用转义大于号)
[[ ]] 双方括号:字符串模式匹配(通配符*)
五、case 多分支匹配
语法
bash
运行
case 变量 in
模式1|模式2) 指令;;
模式3) 指令;;
*) 默认指令;;
esac
竖线|代表或;;;分隔分支;*)匹配所有其他情况
核心知识点总结
if 依靠命令退出码判断真假,test/[]实现数值 / 字符串 / 文件判断
多分支:少条件用 elif,单一变量多匹配用 case 更简洁
(( ))处理数学运算,[[ ]]做字符串模糊匹配
文件测试、逻辑与 / 或可组合复杂判断逻辑
练习1
练习2