文件测试
-d
:测试是否为目录(
Directory
)
-e
:测试目录或文件是否存在(
Exist
)
-f
:测试是否为文件(
File
)
-
r
:测试当前用户是否有权限读取(
Read
)
-w
:测试当前用户是否有权限写入(
Write
)
-x
:测试是否设置有可执行(
Excute
)权限
整数值比较
-eq
:第一个数等于(
Equal
)第二个数。
-ne
:第一个数不等于(
Not Equal
)第二个数。
-gt
:第一个数大于(
Greater Than
)第二个数。
-lt
:第一个数小于(
Lesser Than
)第二个数。
-le
:第一个数小于或等于(
Lesser or Equal
)第二个数。
-ge
:第一个数大于 或等于(
Greater or Equal
)第二个数
字符串比较
=
:第一个字符串与第二个字符串相同
!=
:第一个字符串与第二个字符串不相同,其中
“!”
符号表示取反
-z
:检查字符串是否为空(
Zero
),对于未定义或赋予空值的变量将视为空串逻辑测试
&&
:逻辑与,表示
“
而且
”
,只有当前后两个条件都成立时,整个测试命令的返回值才为 0
(结果成立)。使用
test
命令测试时,
“&&”
可改为
“-a”
||
:逻辑或,表示
“
或者
”
,只要前后两个条件中有一个成立,整个测试命令的返回值即为 0(结果成立)。使用 test 命令测试时,“||”可改为“-o”。
!
:逻辑否,表示
“
不
”
,只有当指定的条件不成立时,整个测试命令的返回值才为
0 (结果成立)
if
语句的结构
1.
单分支
if
语句
语法格式如下
if
条件测试操作
then
命令序列
fi
2.
双分支
if
语句
语法格式如下
if
条件测试操作
then
命令序列
1
else
命令序列
2
fi
3.
多分支
if
语句
语法格式如下
if
条件测试操作
1
then
命令序列
1
elif
条件测试操作
2
then
命令序列
2
else
命令序列
3
fi
case
语句的结构
case
分支语句的语法结构如下
case
变量值
in
模式
1)
命令序列
1
;;
模式
2)
命令序列
2
;;
……
* )
默认命令序列
esac
case
行尾必须为单词
“in”
,每一模式必须以右括号
“)”
结束。
双分号
“;;”
表示命令序列的结束。
模式字符串中,可以用方括号表示一个连续的范围,如
“[0-9]”
;还可以用竖杠符号 “|”表示或,如
“A|B”
。
最后的
“*)”
表示默认模式,其中的
*
相当于通配符