本章目录
一:条件测试
1.1:文件测试
1.1.1:test命令
test命令:测试特定的表达式是否成立,当条件成立时,测试语句的返回值为0,否则为其他数值
命令基本格式
格式一:test 条件表达式
格式二:[ 条件表达式 ] '两端要有空格,此法更为常用'
1.1.2:文件测试
文件测试基本格式
[ 操作符 文件或目录 ] '注意两端空格'
&? 返回0表示条件成立,返回非零值表示条件不成立
&& 逻辑与,"而且"的意思
|| 逻辑或,"或者"的意思
1.2:整数测试
整数值比较
命令基本格式
[ 整数1 操作符 整数2 ]
1.3:字符串与逻辑测试
1.3.1:字符串比较
常用的格式
格式一:[ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式二:[ -z 字符串 ]
1.3.2:逻辑测试
基本格式
格式一: [ 表达式1 ] 操作符 [ 表达式2 ] ...
格式二: 命令1 操作符 命令2 ...
二:if语句
2.1:if单分支语句
单分支结构(基本格式)
if 条件测试操作
then 命令序列
fi
单分支结构(举例)
if 磁盘已用空间>80%
then 报警
fi
如图所示:
exit 1 异常退出
exit 0 正常退出
示例:
[root@localhost opt]# vim eee.sh
#!/bin/bash
dir "/opt/demo02"
if [ ! -d $dir ] '若不存在/opt/demo2,则执行下述命令'
then
mkdir -p $dir
echo "$dir创建成功"
fi
[root@localhost opt]# chmod +x eee.sh
[root@localhost opt]# ./eee.sh
/opt/demo02创建成功
2.2:if双分支语句
双分支结构(基本格式)
if 条件测试操作
then 命令序列1
else 命令序列2
fi
双分支结构(举例)
if 80端口是否在监听
then 网站服务已在运行
else 启动httpd服务
fi
如图所示:
示例:
[root@localhost opt]# vim eee.sh
#!/bin/bash
dir="/opt/demo02"
if [ ! -d $dir ]
then
mkdir -p $dir
echo "$dir创建成功"
else
echo "$dir已存在"
fi
[root@localhost opt]# ./eee.sh
/opt/demo02已存在
2.3:if多分支语句
多分支结构(基本格式)
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
多分支结构(举例)
if 分数为85~100之间
then 判为优秀
elif 分数为70~84之间
then 判为合格
else
判为不合格
fi
如图所示:
示例:
举例:判断分数范围,分数优秀,合格,不合格三挡
[root@localhost opt]# vim ggg.sh
#!/bin/bash
read -p "请输入成绩:" score
if [ $score -lt 0 ] || [ $score -gt 100 ]
then
echo "输入有误"
exit 1;
elif [ $score -ge 85 ] && [ $score -le 100 ]
then
echo "成绩优秀"
elif [ $score -ge 70 ] && [ $score -le 84 ]
then
echo "成绩合格"
else
echo "成绩不合格"
fi
[root@localhost opt]# ./ggg.sh
请输入成绩:100
成绩优秀
[root@localhost opt]# ./ggg.sh
请输入成绩:82
成绩合格
[root@localhost opt]# ./ggg.sh
请输入成绩:53
成绩不合格
[root@localhost opt]# ./ggg.sh
请输入成绩:111
输入有误
[root@localhost opt]# ./ggg.sh
请输入成绩:-23
输入有误