第七节

 

Shell脚本

条件测试语句

格式:[  条件表达式  ]         //两边有空格

文件测试常用参数:

-d 测试文件是否为目录
-e 测试文件是否存在
-f 判断是否为一般文件
-r 测试当前用户是否有读权限
-w 测试当前用户是否有写权限
-x 测试当前用户是否有执行权限

文件测试是使用指定条件来判断文件或目录是否存在、权限是否满足等情况。

常用的整数比较运算符

-eq 是否等于
-ne 是否不等于
-gt 是否大于
-lt 是否小于
-le 是否小于或等于
-ge 是否大于或等于

整数比较运算符仅仅是对数字进行操作。

常见的字符串比较运算符:

= 比较字符串内容是否相同
!= 比较字符串内容是否不同
-z 判断字符串是否为空

字符串比较语句用于判断测试字符串是否为空,或两个字符串是否相同。

流程控制语句

if条件测试语句:

if语句分为单分支结构、双分支结构、多分支结构

单分支结构:

if    条件                           //条件判断

    then   命令序列           //满足条件执行then

fi                                     //不满足条件,结束退出

[root@linuxprobe ~]# vim mkcdrom.sh
#!/bin/bash             //脚本声明
DIR="/media/cdrom"      //定义变量
if [ ! -d $DIR ]        //判断目录是否存在
then    
        mkdir -p $DIR   //不存在则创建
fi

双分支结构:

if    条件                           

    then   命令序列1          //满足条件执行then

    else   命令序列2          //不满足执行else

fi                                     //结束退出

[root@superwu10 shell.test]# vim checkhost.sh
#!/bin/bash
IP=192.168.10.30
ping -c 3 $IP &> /dev/null
if [ $? -eq 0 ]
then
    echo "$IP is online"
else
    echo "$IP is offline"
fi

多分支结构:

if    条件1                         

    then   命令序列1          //满足条件1执行t

elif  条件2

    then   命令序列2          //满足条件2执行

elif  条件3

    then   命令序列3         //满足条件3执行

else  

      命令序列4                //以上条件都不满足执行

fi                                     //结束退出

[root@superwu10 shell.test]# cat checkchengji2.sh
#!/bin/bash
read -p "Enter your chengji (0-100)" DATA
if [ $DATA -ge 90 ] && [ $DATA -le 100 ]
then echo "$DATA is youxiu"
elif [ $DATA -lt 90 ] && [ $DATA -ge 70 ]
then echo "$DATA is lianghao"
elif [ $DATA -lt 70 ] && [ $DATA -ge 60]
then echo "$DATA is pass"
elif [ $DATA -lt 60 ] && [ $DATA -ge 0 ]
then echo "$DATA is not pass"
else echo "You enter is Error,please enter 0-100"
fi

 

posted @ 2022-01-23 13:28  小蟋帅  阅读(97)  评论(0编辑  收藏  举报