目录
- 一、条件测试
- 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
最后的)表示默认模式,其中的相当于通配符


















