shell脚本之条件语句

test命令

格式

测试表达式是否成立,若成立返回0,否则返回其他数值。

格式1: test 条件表达式

格式2: [ 条件表达式 ]

文件测试

格式:

操作符 文件名或者目录名  

常用的测试操作符

-d∶ 测试是否为目录(Directory)
-e∶ 测试目录或文件是否存在(Exist)
-f∶ 测试是否为文件(File)
-r∶ 测试当前用户是否有权限读取(Read)
-w∶ 测试当前用户是否有权限写入(Write)
-x∶测试当前用户是否有权限执行(eXcute)
-L∶测试是否为软链接文件

整数值比较

格式

[ 整数1 操作符 整数2 ]

常用的测试操作符

-eq∶ 等于(Equal)

-ne∶ 不等于(Not Equal)

-gt∶ 大于(Greater Than)

-lt∶ 小于(Lesser Than)

-le∶ 小于或等于(Lesser or Equal)

-ge∶ 大于或等于(Greater or Equal)

字符串比较

格式

[ 字符串1 = 字符串2 ] #判断是否相等

[ 字符串1 != 字符串2 ] #判断是否不等

[ -z 字符串 ] #是否空值

[ -n 字符串 ] # 字符集是否存在

常用的测试操作符

=∶ 字符串内容相同

!=∶ 字符串内容不同,!号表示相反的意思

z∶字符串内容为空

逻辑测试

逻辑测试用于连接多个测试条件,并返回整个表达式的值。 逻辑测试主要有"逻辑与","逻辑或","逻辑否"三种

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

二:命令1 操作符 命令2

操作符:

-a或&&   逻辑与,而且

-o或||   逻辑或,或者

[表达式1] && [表达式2] 等同于 [表达式1 -a 表达式2] 等同于 [[表达式1 && 表达式2]]

三元运算符

[ 条件表达式 ] && 值1 || 值2

 || 运算符的前面表达执行成功后将不会再运行后面的表达式

if语句

单分支结构

 

 

 

语法:

if [ 条件测试表达式 ]     #如果 [ 为真 ]

then     #那么

命令       #执行该命令

fi         #退出

双分支
 

 

 

语法:

if [ 条件测试表达式 ]   #如果 [ 为真 ] 

 then #那么 命令1    #执行该命令 

 else    否则 

 命令2   #执行命令2 

 fi    #退出

多分支

if [ 条件测试表达式 ]      #如果 [ 为真 ] 

 then      #那么 

 命令1      #执行该命令 

 elif     #又如果 

 命令2     #执行命令2 

 elif       #又如果 

 命令3     #执行命令3 

fi     #退出

case语句结构

case多分支结构

语法:

case 变量引用 in 

模式1) 

       命令分支1 

        ;; 

 模式2) 

         命令分支2 

         ;; 

 ... *) 

         默认命令分支 

 esac

注意:

case支持glob风格的通配符: 

 * :任意长度任意字符 

 ? :任意单个字符 

 [0-9] :指定范围内的任意单个字符 

 | :“或者”的意思,如: a|b

posted @ 2022-10-31 16:23  林乃均  阅读(44)  评论(0编辑  收藏  举报