shell脚本的基本应用
shell的应用
这章主要是使用test条件测试、整数比较、字符串比较、逻辑运算比较以及if判断。
(一)条件测试
1.test的条件测试结果有
真
假
2.条件测试语法
[ 条件 ]
test 条件
3.条件测试选项
-d:判断是否为目录
-f:判断是否为文件
-w:判断是否有写入权限
-r:判断是否有读取权限
-x:判断是否有执行权限
-e:判断文件目录是否存在
4.测试一下命令
mnt是否是目录(如果是目录则显示yes)
代码如下:
[root@dns1 ~]# test -d /mnt/
[root@dns1 ~]# echo $?
0
二、整数比较
1.整数比较运算符的类型
gt:大于
lt:小于
ge:大于等于
le:小于等于
eq:等于
ne:不等于
2.整数比较应用
代码如下:
使用10大于5测试一下代码
[root@centos01 ~]# [ 10 -gt 5 ] && echo "yes"
三、字符串比较
1.字符串比较运算符类型
=:字符串内容是否相同
=!:字符串内容不相同
-z:检查字符串是否为空
2.整数比较应用
[root@centos01 ~]# [ "bob" = "bob" ] && echo "yes"
四.逻辑运算比较
1.逻辑运算操作符
a:条件必须全部为真,可以使用符号&&表示
o:条件匹配任意一个为真,可以使用符合||
!:逻辑否取反
判断两个目录是否存在
代码如下:
[root@centos01 ~]# [ "bob" = "bob" ] && echo "yes"
(二)if判断
一、if单分支
1.单分支特点
满足条件执行命令
2.if单分支结构
if 条件
then
命令序列
fi
3.测试目录是否存在不存在创建
[root@centos01 ~]# vim mkdir.sh
#!/bin/bash
mount="/media"
if [ ! -d $mount ]
then
mkdir $mount
fi
二、if双分支
1.特点
判断第一个条件匹配执行命令序列一
条件不匹配执行命令二
2.if双分支结构
if 条件
then
命令序列一
else
命令序列二
fi
3.判断主机是否开机
[root@centos01 ~]# vim ping.sh
#!/bin/bash
read -p "请输入IP地址:" ip
ping -c 3 -i 0.5 -w 3 $ip &> /dev/null
if [ $? -eq 0 ]
then
echo "host $ip is up!!!"
else
echo "host $ip is down!!"
fi
三、if多分支判断
1.特点
第一个条件匹配执行命令序列一
第一个不匹配匹配第二个条件执行命令序列二
一和二条件都不匹配执行默认命令
2.if多分支条件
if 条件一
then
命令序列一
elif 条件二
then
命令序列二
else
命令序列三
fi
3.if多分支的应用
[root@centos01 ~]# cat ./test.sh
#!/bin/bash
read -p "请输入考试成绩:" int
if [ $int -ge 85 ] && [ $int -le 100 ]
then
echo "你的考试成绩是$int,太棒了优秀!!!"
elif [ $int -ge 70 ] && [ $int -le 84 ]
then
echo "你的考试成绩是$int,考试合格需要继续努力!!!"
else
echo "你的考试成绩是$int,你学校重新学习!!"
fi