判断语句的使用使得脚本具有了智能判断的功能,通过判断,我们可以分析计算机操作环境、

工作状态,实现脚本的智能化,让脚本根据不同的环境执行不同的操作。

Shell脚本的判断可以使用if语句或case语句

if语句

常用语句的语法格式,命令序列代表命令集合,可以是一条命令,也可以

是多条命令。也就是说,当判断条件满足时,可以仅执行一条命令,也可以执行一系列命令,

格式中对条件的判断可以使用test命令,也可以使用[]测试。

语法格式:

1.一条命令

If 条件 then 命令序列 fi

2.两条命令

If 条件 then 命令序列 else 命令序列 fi

3、多条命令

If 条件 then 命令序列 elif 条件 命令序列 elif 条件 命令序列 else 命令序列 fi

示例1:判断输入的字符串是否等于root

创建脚本文件,并添加权限,然后编辑脚本

[root@localhost myproject]# touch oneiftest.sh [root@localhost myproject]# chmod 755 oneiftest.sh [root@localhost myproject]# vi oneiftest.sh

!/bin/bash read -p "Enter a password:" password if [ "$password"=="root" ]; then echo "输入密码正确" else echo "ERROR" fi

Linux 脚本校验语句:Linux运维ifcase判断语句的使用(1)

一定要注意:

If[]中括号中的判断内容两边一定要添加空格,不然会报语法错误

示例2:输入一个成绩,如果大于80,输出“优秀”,大于70输出:“良好”,大于60输出:“及格”,小于60输出:“ERROR”

[root@localhost myproject]# vi oneiftest.sh [root@localhost myproject]# ./oneiftest.sh Enter a number:80 优秀 [root@localhost myproject]# ./oneiftest.sh Enter a number:70 良好 [root@localhost myproject]# ./oneiftest.sh Enter a number:60 及格 [root@localhost myproject]# ./oneiftest.sh Enter a number:50 ERROR [root@localhost myproject]#

#!/bin/bash read -p "Enter a number:" number if [ $number -ge 80 ]; then echo "优秀" elif [ $number -ge 70 ]; then echo "良好" elif [ $number -ge 60 ]; then echo "及格" else echo "ERROR" fi

Linux 脚本校验语句:Linux运维ifcase判断语句的使用(2)

case语句

在 Shell脚本中,除了使用if语句进行判断外,还可以使用case语句进行判断,case语句的语法结构,case语句是多重if判断语句的替换解决方案,它易读、易写。

case语句通过检査模式与变量值是否匹配,如果匹配,则执行相应模式下的命令序列,命令序列;可以是单条命令,也可以是多条命令的集合,*)下的命令为case默认动作,当变量与所有的模式

都没有匹配时,case将执行*)下的命令序列。模式可以使用通配符,模式下的命令序列最后必

须要以;;结尾的默认命令序列除外,代表该模式下的命令到此结束。

最后,case语句使用esac结束整个语句。

语法1:

Case $变量名称 in 模式1) 命令序列 ;; 模式2) 命令序列 ;; 模式N) 命令序列 ;; *) esac

语法2:

Case $变量名称 in 模式1|模式2) 命令序列 ;; 模式3|模式4) 命令序列 ;; 模式N-1|模式N) 命令序列 ;; *) esac

示例1:根据时间备份/var/log 日志目录,仅备份周三、周五的数据。

#!/bin/bash DATE=$(date %a) TIME=$(date %Y%m%d) case $DATE in Wed|Fri) echo "OK OK OK OK OK OK" ;; *) echo "Today neither Wed nor Fri." esac

Linux 脚本校验语句:Linux运维ifcase判断语句的使用(3)

,