目录
- 一、条件测试
- 1.1test命令
- 1.2文件测试
- 1.2.1文件测试常见选项
- 1.3整数值比较
- 1.4字符串比较
- 1.5逻辑测试
- 二、if语句
- 2.1单分支结构
- 2.2双分支结构
- 2.3多分支结构
- 三、case语句
一、条件测试
1.1test命令
测试特定的表达式是否成立,当条件成立,测试语句的返回值为0,否则为其他数值 。
格式:
test 条件表达式
或 [ 条件表达式 ] (条件表达式的两边都需要有空格,且此方法更为常用)
1.2文件测试
1.2.1文件测试常见选项
选项 | 作用 |
---|---|
-d | 测试是否为目录 |
-f | 测试是否为文件 |
-e | 测试文件和目录是否存在 |
-r | 测试是否具有读取权限 |
-w | 测试是否具有写入权限 |
-x | 测试是否具有执行权限 |
示例:
1.3整数值比较
格式:
[ 整数1 操作符 整数2 ]
常见测试操作符:
选项 | 作用 |
---|---|
-eq | 等于 |
-ne | 不等于 |
-ge | 大于等于 |
-le | 小于等于 |
-gt | 大于 |
-lt | 小于 |
示例:测试文件的个数是否大于十个
1.4字符串比较
格式:
[ 字符串1 = 字符串2 ] #判断是否相等
[ 字符串1 != 字符串2 ] #判断是否不等
[ -z 字符串 ] #判断字符串内容是否为空
选项 | 作用 |
---|---|
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
> | 大于 |
< | 小于 |
选项 | 作用 |
---|---|
-z | 检查字符串是否为空 |
= | 第一个字符串与第二个字符串相等 |
!= | 第一个字符串与第二个字符串不相同 |
示例: 判断当前系统语言环境是否为“us.en”,如果不是则提示
1.5逻辑测试
格式:
[ 表达式1 ] 操作符 [ 表达式2 ]
命令1 操作符 命令2
选项 | 作用 |
---|---|
&& /-a | 逻辑与 |
-o/ 丨丨 | 逻辑或 |
! | 逻辑否 |
二、if语句
2.1单分支结构
格式:
if [ 条件判断式 ]; than
当条件判断成立时,执行一条或多条命令
fi
如果只有一个判断式要进行,那么我们可以使用单分支的if语句 ,只有在条件成立时才会执行,否则不执行任何操作
示例: 使用单分支if语句判断test文件是否存在
2.2双分支结构
例子:断文件是否存在,不在则创建
2.3多分支结构
三、case语句
格式:
case 变量名称 in
模式1)
命令序列
;;
模式2)
程序段
;;
*)
不包含第一个变量内容与第二个变量内容的其他程序执行段
默认程序段
;;
esac
注意点:
case行首必须以单词“in”,每一模式必须以单个右括号")"结束
双分号";;"表示命令序列的结束
模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以使用竖杠|表示或,比如a|b
最后的)表示默认模式,其中的相当于通配符