shell之条件测试语句
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、实例


浙公网安备 33010602011771号