千家信息网

Shell脚本——条件语句

发表于:2024-10-25 作者:千家信息网编辑
千家信息网最后更新 2024年10月25日,条件测试1、文件测试2、整数值比较3、字符串与逻辑测试·if语句:单分支的if语句双分支的if语句多分枝的if语句·1、文件测试文件测试是指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文
千家信息网最后更新 2024年10月25日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   命令序列1then   命令序列2fi

多分枝结构

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