一、条件测试操作
1、test命令
测试表达式是否成立,若成立返回0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ] #前后必须有空格
2、文件测试
[ 操作符 文件或目录 ]
常用的测试操作符
-d:测试是否为目录 (Directory)
-e:测试目录或文件是否存在(Exist)
-f:测试是否为文件(File)
-r:测试当前用户是否有权限读取(Read)
-w:测试当前用户是否有权限写入(Write)
-x:测试当前用户是否有权限执行(excute)
示例
3、整数值比较
[ 整数1 操作符 整数2 ]
常用的测试操作符
-eq:等于 (Equal)
-ne:不等于(Not Equal)
-gt:大于(Greater Than)
-lt:小于(Lesser Than)
-le:小于或等于(Lesser or Equal)
-ge:大于或等于(Greater or Equal)
示例
free -m (查看内存使用情况)
拓展:工作中常遇到内存被占用过多的情况可以使用清理缓存的命令来解决:
(1)free 查看内存使用情况
(2)sync
(3)echo 3> /proc/sys/vm/drop_caches #清理缓存
(4)free 在次查看内存
4、字符串表示
(1)格式
格式1 :[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2 :[ -Z 字符串]
(2)常用的测试操作符
=:字符串内容相同
!=: 字符串内容不同,!号表示相反的意思
-z: 字符串内容为空
(3)示例
5、逻辑测试
(1)格式
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2: 命令1 操作符 命令2 ...
(2)常用的操作测试
-a或&&:逻辑与,“而且”的意思
-o或||:逻辑或,“或者”的意思
!: 逻辑否
二、if语句的结构
1、单分支结构
(1)格式:
if 条件测试操作
then 命令序列
fi
if 条件测试操作;then
命令序列
fi
(2) 单分支流程图
(3) 中括号的使用:
单个括号[ ]: 必须要有空格 两个字符或数字之间的比较左右必须有空格 ,条件判断:test一种形式,[ ] 中间只能使用= 和 ! = 比较字符串,如果使用< 、>需要进行转义\. 然后中间如果比较数字要用 -lt 等符号,不能使用\<比较数字,他会当成字符串处理
两个括号[[ ]]: 可用于处理逻辑命令,也可以处理字符串是否相等,且使用<、>不用转义符
(4)示例
示例1;
示例2;
示例3;
2、双分支结构
(1)双分支结构
if 条件测试操作
then 命令序列1
else 命令序列2
fi
列:if [ 50 -gt 40 ]
then echo "yes"
else echo "no"
fi
(2)双分支流程图
(3)示例
示例一:用双分支结构ping 单个地址
示例二:用双分支结构写出能够实现创建用户并设置初始密码的shell脚本
示例三:用双分支结构写出能够实现创建用户并设置初始密码的shell脚本
示例四:用双分支结构写出能够实现Apcche服务自动安装启动的脚本
方法二:
3、多分支结构
(1)格式
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
列
if 得分为90-100
then 判断为优秀
elif 分数为80-89
then 判断为良好
elif 分数为60-79
then 判断为合格
esle 判断为不合格
fi
(2)流程图
(3)示例
示例1:用多分支结构写出能够实现交互式识别文件类型的脚本
示例1:用多分支结构写出能够实现交互式判断学生成绩为什么等级的脚本
三、case语句结构
1、case多分支结构
(1)格式:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
……
*)
默认命令序列
esac
(2)流程图
(3)示例
示例1:用case多分支结构写出能够实现交互式判断输入的是什么字符的简单脚本
示例2;用case多分支结构写出能够实现交互式判断学生成绩为什么等级的脚本
总结
本博客讲了条件测试的基本格式和简单案例,
if语句的使用方法和一些简单的案例。
case语句结构的使用方法和简单案例适合小白阅读和学习。