Shell编程之条件语句
一、条件测试
1.1、test命令
-
测试表达式是否成立,若成立返回0,否则返回其他数值
格式1: test 条件表达式 #条件表达式等号两边要有空格 格式2: [ 条件表达式 ] man test #详细显示test用法
1.2、测试与比较
文件测试
[操作符 文件或目录]
常用的操作符
常用操作符 | 说明 |
---|---|
-r | 测试当前用户是否有权限读取(Read)。 |
-w | 测试当前用户是否有权限写入(Write)。 |
-x | 测试是否有可执行(eXcute)权限。 |
-f | 测试是否为文件(File) |
-e | 测试目录或文件是否存在(Exist)。 |
-d | 测试是否为目录( Directory)。 |
-L | 测试是否为符号链接(软链接)。 |
整数值比较
[整数1 操作符 整数2] #整数1可以是表达式或者变量
常用的测试操作符
常用操作符 | 说明 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(Not Equal)(Equal) |
-gt | 大于(Greater Than) |
-lt | 小于(Lesser Than) |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
注:使用中括号时要注意括号里面的空格
字符串比较 (最好用双引号括起来)
格式一: [字符串1 = 字符串2]
[字符串1 != 字符串2]
格式二: [ -z "字符串" ] #检查字符串是否为空(Zero),对于未定义或赋予空值的变量将视为空串
[ -n "字符串" ] #检查是否有字符串存在
常用的测试操作符
=:字符串内容相同
!=:字符串内容不同,!号表示相反的意思
-z:字符串内容为空
逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用的测试操作符
操作符 | 说明 |
---|---|
-a或&& | 逻辑与,“而且”的意思 #前面的表达式成功,后面的才能判断 |
-o或|| | 逻辑或,“或者”的意思 #前面条件成立,执行前面的条件,前面条件不成立,执行后面的条件 |
! | 逻辑否 #不成立 |
二、if语句
2.1、if单分支语句
if [ 条件测试操作 ]
then
命令序列
fi
或
if [ 条件测试操作 ];then
命令序列
if
注意事项
[ 条件测试操作 ],条件测试操作与中括号之间必须有空格
2.2、if双分支语句
2.3、if多分支语句
三、case分支语句
基本语法
case $变量名 in
"值1")
;; #如果变量的值等于1,则执行程序1
"值2")
;; #如果变量的值等于2,则执行程序2
...省略其他分支
*)
;; #如果变量的值都不是以上的值,则执行此程序
esac