条件语句
test命令
格式1:test 条件表达式
格式2:[ 条件表达式 ]
注意[]空格,否则会失败
测试 是否成功使用 $? 返回值
| 常见的测试操作符 | 含义 |
|---|---|
| -d | 测试是否为目录(directory) |
| -e | 测试目录或文件是否存在(Exist) |
| -f | 测试是否为文件(File) |
| -r | 测试当前用户是否有权限读取(Read) |
| -w | 测试当前用户是否有权限写入(Write) |
| -x | 测试当前用户是否有权限执行(eXcute) |
| -L | 测试是否为软连接文件 |
整数数值比较
格式:[ 整数1 操作符 整数2 ]
- -eq:第一个数等于(Equal)第二个数
- -ne:第一个数不等于(Not Equal)第二个数
- -gt:第一个数大于(Greater Than)第二个数
- -lt:第一个数小于(Lesser Than)第二个数
- -le:第一个数小于或等于(Lesser or Equal)第二个数
- -ge:第一个数大于或等于(Greater or Equal)第二个数
字符串比较
格式:[ 字符串1 操作符 字符串2 ]
[ 字符串1 = 字符串2 ] 是否相同
[ 字符串1 != 字符串2 ] 是否不相同
[ -z 字符串 ] 是否为空
[ -n 字符串 ] 字符是否存在
逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]
格式2:命令1 操作符 命令2
- -a或&&:逻辑与,“而且”的意思全真才为真
- -o或||:逻辑或,“或者”的意思一真即为真
- !:逻辑否
括号
双中括号[ [ ] ]
- == 左侧字符串是否和右侧的PATTERN相同
注意:此表达式用于[[ ]]中,PATTERN为通配符 - =~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配
注意: 此表达式用于[[ ]]中;扩展的正则表达式
()与{}
(CMD1;CMD2;...)和 {CMD1;CMD2;...; } 都可以将多个命令组合在一起,批量执行
if语句
格式:
if 条件测试操作
then 命令顺序1
else 命令顺序2
fi 分支语句
小脚本:http
小脚本:成绩单
case语句
格式:
case 变量值 in
模式1) 命令序列1
;;
模式2)
命令序列2
;;
* 默认命令序列
esac