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旧
posted @   箫笛  阅读(70)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示