目录
一、条件测试
test命令
测试表达式是否成立,若成立返回0,否则返回其他数值
格式1: test 条件表达式
格式2: [条件表达式|]
文件测试
[ 操作符 文件或目录 ]
常用的测试操作符
操作符 | 作用 |
-e | 测试目录是否存在 |
-f | 测试文件是否存在 |
-d | 测试目录是否存在 |
-r | 测试用户是否有读权限 |
-w | 测试当前用户是否有写权限 |
-x | 测试当前用户是否有执行权限 |
-L | 测试软链接是否存在 |
整数值比较
[ 整数1 操作符 整数2]
二、 常用的测试操作符
操作符 | 含义 | 符号表示 |
-eq | 等于 | == |
-ne | 不等于 | !=luo |
-gt | 大于 | \> |
-ge | 大于等于 | >=或=> |
-lt | 小于 | \< |
-le | 小于等于 | <=或=< |
格式一
test 整数1 操作符 整数2
格式二
省略test格式
三、字符串比较
格式一
[ 字符串1 = 字符串2 ] 判断两个字符串是否相同
[ 字符串1 != 字符串2 ] 判断两个字符串是否不相同
[[ 字符串1 =~ 字符串2 ]] 判断是否包含
格式二
[ -z "字符串" ] 检查字符串是否为空(zero),对于未定义或赋予
空值的变量将视为空串
[ -n "字符串" ] 检查是否有字符串存在注意:
- -z 后面字符串可以不带双引号
- -n 后面字符串需要带双引号
- 所以字符串判断最好都加上双引号
四、逻辑测试
常用的测试操作符
操作符 | 符号 | 名称 | 解释 |
-a | && | 逻辑且(而且) | 前后条件都要成立 |
-o | || | 逻辑或(或者) | 只需前后条件中一个成立 |
! | 逻辑否 | 否定 |
格式一
[ 表达式1 ] 操作符 [ 表达式2 ]
格式二
命令1 操作符 命令2
格式三
[[ 表达式1 符号 表达式2 ]]
三元运算符
[ 表达式1 ] || 命令1 如果表达式1条件成立不会执行或运算符后面的命令1,如果表达
式1条件不成立则会执行或运算符后面的命令1
[ 表达式1 ] && 命令1 || 命令2 如果表达式1条件成立则执行命令1,如果表达式1条件不成立则
命令2
[ ! 表达式1 ] 取反,如果表达式1条件成立则最终结果为条件不成立
五、if语句
单分支结构
if 条件测试操作
then
命令序列
fi
分支结构
if 条件测试操作
then
命令序列 1
else
命令序列 2
fi
多分支结构
if [ 表达式 ];then
语句1
elif [ 表达式 ];then
语句2
elif [ 表达式 ];then
语句2
fi
六、case语句结构
case多分支结构
case多分支结构
case 变量值 in
模式 1)
命令1
;;
模式 2)
命令2
;;
.....(可以添加多个条件)
esac 这就是case的反过来的字母