shell编程 - 条件测试
1. 条件测试格式
简单条件测试
if [ condition ]
then
commands
fi
注意condition条件表达式在前后方括号之后和之前各有一个空格,否则会出现语法错误
逻辑与条件测试
if [ condition1 ] && [ condition2 ]
then
commands
fi
两个条件表达式执行均为True,则执行if-then语句
逻辑或条件测试
if [ condition1 ] || [ condition2 ]
then
commands
fi
两个条件表达式有一个执行为True,则执行if-then语句
数学表达式条件测试
var1=10
if (( $var1 ** 2 > 100 ))
then
(( var2=$var1**2 ))
echo "The square of $var1 is $var2"
fi
在双圆括号中可以执行高级的数学表达式
字符串模式匹配条件测试
if [[ $USER == r* ]]
then
echo "Hello $USER"
else
echo "Sorry, I do not know you"
fi
- 在方括号之中执行高级字符串处理功能,当前用户名是否以r开头,双等号将右边视为一个模式*
2. 条件测试种类
- 数值比较
- 字符串比较
- 文件比较
3. 数值比较
n1 -eq n2 # 检查n1是否与等于n2
n1 -ne n2 # 检查n1是否不等于n2
n1 -ge n2 # 检查n1是否大于等于n2
n1 -gt n2 # 检查n1是否大于n2
n1 -le n2 # 检查n1是否小于等于n2
n1 -lt n2 # 检查n1是否小于n2
4. 字符串比较
str1 = str2 # 检查str1是否和str2相同
str1 != str2 # 检查str1是否和str2不同
str1 < str2 # 检查str1是否比str2小
str1 > str2 # 检查str1是否比str2大
-n str1 # 检查str1的长度是否非0
-z str1 # 检查str1的长度是否为0
5. 文件比较
-d file # 检查file是否存在并且是一个目录
-e file # 检查file是否存在
-f file # 检查file是否存在并且是一个文件
-r file # 检查file是否存在并且可读
-s file # 检查file是否存在并非空
-w file # 检查file是否存在并且可写
-x file # 检查file是否存在并且可执行
-O file # 检查file是否存在并属当前用户所有
-G file # 检查file是否存在并且默认组与当前用户相同
file1 -nt file2 # 检查file1是否比file2新
file1 -ot file2 # 检查file1是否比file2旧
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战