最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
Linux Shell 脚本中的算术运算和逻辑判断控制流
时间:2026-07-08 09:47:52 编辑:袖梨 来源:一聚教程网
Shell脚本算术运算首选$(( )),支持完整整数运算且无需转义;数值比较用-eq/-lt等,字符串比较用=且两侧必须空格;文件判断用-f/-d/-r等,条件组合推荐[[ ]]配合&&/||。
Shell 脚本里做算术和判断,关键不是“能不能”,而是“用对语法”——写错空格、混用符号、忽略类型差异,很容易执行失败或逻辑出错。
算术运算:优先用 $(( )),别碰 expr 的坑
Shell 不直接支持浮点,整数运算是主力。三种写法中,$(( )) 最推荐:
- 支持 + - * / % 等全部运算符,乘号不用转义
- 可嵌套变量、表达式,比如
result=$(( (a + b) * c )) - 赋值时自然连写:
count=$((count + 1))或简写为((count++)) -
expr和$[ ]已逐步淘汰:expr要求每个操作符前后加空格,*必须写成*;$[ ]兼容性差,bash 新版本不鼓励使用
数值与字符串判断:别用错运算符
Shell 对类型敏感,数值比较不能用 =,字符串比较不能用 -eq:
- 数值判断必须用
-eq、-lt、-ge等,写在[ ]内,如:[ $num -gt 10 ] - 字符串相等用
=或==(推荐=),注意等号两侧必须有空格:[ "$str" = "yes" ] - 判空用
-z(空)或-n(非空):[ -z "$input" ]比[ "$input" = "" ]更安全 - 避免裸写
[ $a = $b ]—— 若变量为空,会变成[ = ],语法错误
文件与权限判断:常用就那几个,记牢就行
运维脚本高频需求,重点记住这几个实用判断:
-
-f file:存在且是普通文件(不是目录、链接等) -
-d dir:目录存在 -
-r /path、-w /path、-x /path:对应读、写、执行权限 -
-s file:文件存在且大小 > 0(非空文件) -
-e path:路径存在(文件、目录、链接均可)
组合条件与流程控制:用好 && || 和 if 结构
单行逻辑或复杂分支,靠的是组合方式清晰、括号明确:
- 短路逻辑优先用
&&和||,比如:[ -f "$log" ] && rm "$log" - 多条件组合用
[ ]内的-a(and)、-o(or),但更推荐用[[ ]]配合&&/||,例如:[[ -r "$file" && -s "$file" ]] -
if结构注意 then 和 fi 必须成对,elif 可多层,条件后要加分号或换行 - 简单多选场景用
case,比一堆 if-elif 更易读,尤其处理命令行参数时
相关文章
- 如何登录QQ邮箱网页版 07-08
- 鄂汇办app如何重新注册二级建造师 07-08
- Soul私信功能异常如何解决 07-08
- 如何在火绒安全软件中进行右键管理菜单设置 07-08
- 智慧中小学课程教学如何删除 07-08
- 如何登录邮箱gmail 07-08