shell脚本的条件测试语句

目录

一、条件测试

1、test命令

2、文件测试

3、整数值比较

4、逻辑测试

二、测试语句

1、if语句

2、case语句


一、条件测试

1、test命令

Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试。

test 格式:
test [ 条件表达式 ]

2、文件测试

(1)文件测试选项

参数 说明
-e文件名 如果文件存在则为真
-r文件名 如果文件存在且可读则为真
-w文件名 如果文件存在且可写则为真
-r文件名 如果文件存在且可执行则为真
-d文件名 如果文件存在且为目录则为真
-f文件名 如果文件存在且为普通文件则为真
-c文件名 如果文件存在且为字符特殊型则为真
-b文件名 如果文件存在且为块特殊文件则为真
-s文件名 如果文件存在且至少有一个字符则为真

(2)测试演示

1、测试是否为目录普通文件

2、测试是否是目录

 

3、测试文件是否有可读权限

 

4、测试文件是否有可写权限

 

5、测试文件是否有可执行权限

 

3、整数值比较

格式

[ 整数值  操作符  整数值 ]

常见的操作符

操作符 说明
-eq 等于
-ne 不等于
-gt 大于
-ge 大于不等于
-lt 小于
-le 小于等于

 案例演示

(1)测试根目录文件数是否是10个

 (2)测试系统内存是否大于2024M

 

 4、逻辑测试

1、格式

[ 表达式1] 操作符 [表达式2]

命令1 操作符 命令2

2、操作符

-a或&& 逻辑与,而且的意思
-o 或|| 逻辑或 、或者的意思
逻辑否的意思

二、测试语句

1、if语句

(1)单分支结构

格式

if  [ 条件判断式 ]; then

当条件成功执行命令

fi

案例演示

使用单分支语句判断数字

[root@localhost ~]# vim shu.sh

#!/bin/bash
if [ 1 -lt 3 ];
then
echo yes
fi

[root@localhost ~]# bash shu.sh
yes

(2)多分支结构

格式:

if  [ 条件判断式 ]; then

当条件成功执行命令

else

当条件成功执行命令

fi

案例演示

判断成绩分数属于哪个等级

[root@localhost ~]# vim ji.sh
#!/bin/bash
read -p "请输入分数:" t
if [ $t -ge 0 -a $t -le 59 ];
then echo "不及格"
elif [ $t -ge 60 -a $t -le 70 ];then
echo "及格"
else
echo "良好和优秀"
fi

[root@localhost ~]# bash ji.sh
请输入分数:14
不及格

2、case语句

1、case多分支语句针对变量的不同取值,分别执行不同的命令序列

case语句:适用于判断某一个固定值,固定字符串

2、案例演示

测试你输入的键的类型

[root@localhost ~]# vim key.sh
#!/bin/bash
read -p "请输入一个键:" key
case $key in
        [0-9])
                echo "你敲击的是一个数字"
                ;;
        [a-z]|[A-Z])
                echo "你敲击的是一个字母"
                ;;
        *)
                echo "你敲击的是一个符号或功能键"
esac

[root@localhost ~]# bash key.sh
请输入一个键:z
你敲击的是一个字母

你可能感兴趣的:(linux,运维)