shell编程之条件语句
条件测试
shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0(假false)时表示失败或异常。
test命令:可以对特定条件测试,并根据返回值来判断条件是否成立( ** $? 返回值为0表示条件成立**)。
- 文件测试
格式:【 操作符 文件或目录 】
常用的操作符
-e | 测试目录或文件是否存在(Exist) |
---|---|
-d | 测试是否为目录(Directory) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试是否设置有可执行权限(Excute) |
-L | 测试是否为符号链接 |
- 整数测试
格式:[ 整数变量1 操作符 整数变量2 ]
-eq | 等于 | == |
---|---|---|
-ne | 不等于 | != |
-gt | 大于 | > |
-lt | 小于 | < |
-le | 小于等于 | |
-ge | 大于等于 |
- 字符串测试
1、格式:
[ 字符串1 = 字符串2 ] 或[ 字符串1 == 字符串2 ] |
---|
[ 字符串1 != 字符串2 ] |
2、
** [ -z “字符串” ]** | 检查字符串是否为空(zone),对于未定义或赋予空值的变量将视为空串 |
---|---|
[ -n “字符串” ] | 检查是否有字符串存在 |
- 逻辑测试
1、格式1:[ 表达式1 ] 操作符 [ 表达式2 ] …
2、格式2:命令1 操作符 命令2 …
常用的测试操作符
-a或&& | 逻辑与,“而且”的意思 |
---|---|
-o | 逻辑或,“或者的意思” |
! | 逻辑否 |
if语句
if单分支语句
例题:
if 已用磁盘空间>80%
then 报警
fi
if双分支语句
格式:
if 条件测试操作
then 命令序列1
else 命令序列2
fi
例题:
if 80端口是否在监听
then 网站服务已在运行
else 启动httpd服务
fi
if多分支语句
格式:
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else
命令序列3
fi
例题:分数定级
case分支语句
格式:
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
…
*)
默认命令序列
esac
例题1:
本文含有隐藏内容,请 开通VIP 后查看