Shell脚本基础(二)
1. 条件测试操作
① 文件测试
条件测试选项 :-d:判断是否是目录 -f:判断是否是文件
-w:判断是否有写入权限 -r:判断是否有读取权限
-x:判断是否有执行权限 -e:判断文件目录是否存在
1)判断mnt是否是目录是目录显示yes
[root@centos01 ~]# test -d /mnt && echo “yes”
[root@centos01 ~]# [ -d /mnt ]
② 整数值比较
1)整数比较运算符的类型
gt:大于 , lt:小于 , ge:大于等于 , le:小于等于
eq:等于 , ne:不等于
2)整数比较
[root@centos01 ~]# Unum=who | wc -l
//查看当前登录用户数
[root@centos01 ~]# [ $Unum -gt 2 ] && echo “Too many.” //测试结果(大于)
③ 字符串比较
1)字符串比较运算符类型
=:字符串内容是否相同, =!:字符串内容不相同 ,-z:检查字符串是否为空
2)字符串应用
[root@centos01 ~]# echo $LANG //查看当前语言环境
[root@centos01 ~]# [ $LANG != “en.US” ] && echo “Not en.US” //字符串测试
3) 确认交互过程
④ 逻辑测试
1)逻辑运算操作符
a:条件必须全部为真,可以使用符号&&表示
o:条件匹配任意一个为真,可以使用符号||
!:逻辑否取反
2)逻辑测试应用
[root@centos01 ~]# uname -r //查看内核版本
[root@centos01 ~]# Mnum=$(uname -r | awk -F. '{print KaTeX parse error: Expected 'EOF', got '}' at position 2: 1}̲') //取主版号 [root…(uname -r | awk -F. ‘{print $2}’) //取次版号
[root@centos01 ~]# [ $Mnum -ge 3 ] && [ $Snum -ge 4 ] && echo “符合要求”
⑤ 使用if语句结构
If单分支
1)单分支特点
满足条件执行命令
2)if单分支结构
if 条件
then
命令序列
fi
3)测试目录是否存在不存在创建
[root@centos01 ~]# vim mkdir.sh
[root@centos01 ~]# chmod +x ./mkdir.sh
[root@centos01 ~]# ./mkdir.sh
if双分支
1)特点
判断第一个条件匹配执行命令序列一
条件不匹配执行命令二
2)if双分支结构
if 条件
then
命令序列一
else
命令序列二
fi
3)判断主机是否开机
[root@centos01 ~]# vim ping.sh
if多分支判断
1)特点
第一个条件匹配执行命令序列一
第一个不匹配匹配第二个条件执行命令序列二
一和二条件都不匹配执行默认命令
2)if多分支条件
if 条件一
then
命令序列一
elif 条件二
then
命令序列二
else
命令序列三
fi
3)if多分枝的应用
[root@centos01 ~]# vim test.sh