条件测试基本语法:
①test expression
②[]
若为真,echo $?会返回0,假则返回1
1.字符串测试
string 是否为空字符串 只能使用test命令
string1 == string2 "两字是否相等" 既可以用test,也可以用[]
string1 != string2 "是否不相等" 既可以用test,也可以用[]
-n string 是否为非字符串 既可以用test,也可以用[]
-z string 是否为空串 既可以用test,也可以用[]
2.整数测试
语法:
①test number1 op number2
②[ number1 op number2 ]
*op表示运算符的意思
*!注整数测试一定不要用"="或"!="
*![ ]两边都必须留出一个空格,否则会出现错误
运算符如下:
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于
3.文件测试
语法:
①test op file
②[ op file ]
op 说明
-a 是否存在
-b 是否存在且为块文件
-c 是否存在且为字符文件
-d 是否存在且为目录
-w 是否可写
-r 是否可读
-x 是否可执行
-l 是否已存在并且为符号链接
总结:
①文件是否存在
②文件的类型
③文件的访问权限
特殊:
两个文件之间进行比较:
文件1 -nt 文件2 文件1的修改时间是否早过文件2
文件1 -ot 文件2 文件1的修改时间是否比文件2晚
文件1 -ef 文件2 判断两个文件是否相同,可用于判断硬链接
4.逻辑操作符
!expression 逻辑非,若值为假,则结果为真
expression1 -a expression2 逻辑与,真真为真
expression1 -o expression2 逻辑非,有一真为真,有一假为假
5.条件判断语句
①简单的if语句
if expreesion
then
statement1
statement2
.....
fi
②使用if else语句进行流程控制
if expression
then
state1
state2
....
else
state3
state4
...
fi
③使用if elif语句进行多条件判断,更简便处理分支
if expre1
then
state1
...
elif expre2
then
state2
...
elif expre3
then
state3
...
else
state4
...
fi