1、条件测试操作
Shell环境根据命令执行后的返回转态($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。
test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为0表示条件成立)。
格式一: test 条件表达式
格式二:[ 条件表达式 ] #方括号"["或"]"与条件表达式之间需要至少一个空格进行分离
2、文件测试
格式:[ 操作符 文件或目录 ]
常用的操作符
-e:测试目录或文件是否存在(Exist)
-d:测试是否为目录 (Directory)
-f:测试是否为文件 (File)
-r:测试当前用户是否有权限读取 (Read)
-w:测试当前用户是否有权限写入 (Write)
-x:测试是否设置有可执行 (Excute)权限
-L:测试是否为符号链接
3、整数制比较
格式: [ 整数变量1 操作符 整数变量2 ]
常用的操作符
-eq:等于
-ne:不等于
-gt:大于
-lt:小于
-le:小于等于
-ge:大于等于
4、字符串比较
格式1: [ 字符串1 = 字符串2 ]
[ 字符串1 != 字符串2 ]
格式2: [ -z 字符串 ]
常用的操作符
=:字符串内容相同
!=:字符串内容不同,!表示相反的意思
-z:字符串内容为空
-n:检查是否有字符串存在
5、逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]....
格式2:命令1 操作符 命令2
常用的测试操作符
-a或&&:逻辑与,“而且”的意思
-o或|| :逻辑或,“或者”的意思
! :逻辑否
1、单分支结构
if 条件测试操作
then 命令序列
fi
2、双分支结构
if 条件测试操作
then 命令序列1
else 命令序列2
fi
使用双分支结构来判断 80端口httpd是否在运行
3、多分支结构
if 条件测试操作
then 命令序列1
elif 条件测试操作2
then 命令序列 2
else 命令序列3
fi
例:使用多分支结构创作脚本文件使85~100分之间判为优秀,70-84之间判为合格,其余为不合格
case多分支结构
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
.......
*)
默认命令序列
esac
同样那上一个例子举例