Shell脚本——条件语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本——条件语句相关的知识,希望对你有一定的参考价值。

条件测试

1、文件测试
2、整数值比较
3、字符串与逻辑测试

·

if语句:
单分支的if语句
双分支的if语句
多分枝的if语句

·

1、文件测试

文件测试是指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。

基本格式

test 条件表达式 或者 [ 条件表达式 ]

文件的常见操作选项如下:

选项 描述
-d 测试是否为目录(Directory)
-e 测试目录或文件是否存在(Exist)
-f 测试是否为文件(File)
-r 测试当前用户是否有权限读取(Read)
-w 测试当前用户是否有权限写入(Write)
-x 测试是否设置有可执行(Excute)权限

执行以上操作之后,可以通过“$?”可以获得测试命令的返回状态值,从而判断是否成立

实际操作

格式一

test -d /etc/sysconfig (测试/etc里的sysconfig目录是否存在)
             echo $?(返回值为0,则条件成立)

格式二

[ -d /etc/sysconfig ]
                echo$(若条件不成立,测试值将不为0(通常为1))

整数值比较

格式格式:[ 整数1 操作符 整数2 ]

常用操作选项

1、-eq:等于(Equal)
2、-ne:不等于(Not Equal)
3、-gt:大于(Greater Than)
4、-lt:小于(Lesser Than)
5、-le:小于或等于(Lesser or Equal)
6、-ge:大于或等于(Greater or Equal)

字符串比较

格式1:[ 字符串1 = 字符串2 ]
            [ 字符串1 ! = 字符串2 ]
格式2:[ -z 字符串]

常用操作选项

1、=:第一个字符串与第二个字符串相同
2、!=:第一个字符串与第二个字符串不相同,其或中“!”符号取反
3、-z:检查字符串是否为空,对于未定义或赋予空值的变量将视为空串

逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...

常用操作选项

1、-a或&&:逻辑与,“而且”的意思
2、-o或||:逻辑或,“或者”的意思
3、!:逻辑否,表示“不”的意思

if语句

单分支结构

if 条件测试操作
then
   命令序列
fi

双分支结构

if 条件测试操作
then
   命令序列1
then
   命令序列2
fi

多分枝结构

if 条件测试操作
then
   命令序列1
elif 条件性测试操作2
then
   命令序列2
else
   命令序列3
fi

以上是关于Shell脚本——条件语句的主要内容,如果未能解决你的问题,请参考以下文章

Shell脚本之条件语句

shell脚本中的if中多条件语句如何写。

14Shell脚本—判断语句

Shell脚本------条件语句(条件测试,if语句,case语句)

Shell脚本的条件测试和if条件语句使用

Shell脚本之条件语句