shell之条件测试语句
目录一、test命令或[]中括号判断
1、test命令
test的语法
test 条件表达式 [条件表达式]
test 选项 文件
选项 | 作用 |
---|---|
-d | 判断是否是目录 |
-f | 判断是否是普通文件 |
-b | 判断是否是块设备 |
-c | 判断是否是字符设备 |
-e | 判断是否存在 |
-a | 判断是否存在 |
-r | 判断是否有读的权限 |
-w | 判断是否有写的权限 |
-x | 判断是否有执行的权限 |
例子:
2、[]中括号
2.1 整数值比较[]
选项 | 意义 |
---|---|
-eq | 表示等于 |
-ne | 不是不等于 |
-gt | 表示大于 |
-ge | 表示大于等于 |
-lt | 表示小于 |
-le | 表示小于等于 |
2.2 实例操作
2.2.1 查看系统内存是否超出预定值
2.2.2 比较两个数的大小
2.3 字符串比较
选项 | 作用 |
---|---|
= | 表示字符串相同 |
!= | 表示字符串内容不相同 |
-z | 表示字符串内容为空 |
-n | 表示字符串存在 |
2.3.1 案例:判断字符串是否相同
2.3.2 案例:判断字符串是否为空
2.4 逻辑测试(短路运算)
选项 | 作用 |
---|---|
-a或&& | 逻辑与,“而且”的意思 |
-o或|| | 逻辑或,“或者”的意思 |
! | 逻辑否 |
合并用法:只需要记住一个
cmd1&&cmd2||cmd3:表示cmd1正确执行cmd2,如果cmd1错误就执行cmd3
2.5 双中括号(支持正则表达式和通配符)
[[ expression ]] 用法
== 左侧字符串是否和右侧的PATTERN相同
注意:此表达式用于[[ ]]中,PATTERN为通配符
=~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配
注意: 此表达式用于[[ ]]中;扩展的正则表达式
二、if语句
1 、单分支结构
if [判断]
then
命令序列
fi
2 、双分支结构
if [判断]
then
命令序列1
else
命令序列2
fi
3、 多分支结构
if[判断1]
then
命令序列1
elif[判断2]
then
命令序列2
elif[判断3]
then
命令序列3
.....(可以有多个)
else
命令序列4
fi
三、case语句的结构
case 变量 in
条件1)
命令序列1
;;
条件2)
命令序列2
;;
......
*)
不包含第一个变量内容与第二个变量内容的其他程序执行段
默认程序段
;;
esac
1、实例
标签:语句,shell,命令,test,判断,序列,测试,字符串 From: https://www.cnblogs.com/shijunan2/p/18277143