test 命令
测试表达式是否成立,若成立返0,否则返回其他数值
test 条件表达式
[条件表达式]
常用测试操作符
-d | 测试是否为目录 |
-f |
测试是否为文件 |
-e | 测试目录或文件是否存在 |
-r | 测试 当前用户是否有读权限 |
-w | 测试 当前用户是否有写权限 |
-x | 测试 当前用户是否有执行权限 |
整数数值比较
格式:[ 整数1 操作符 整数2 ]
- -eq:等于(Equal) ==
- -ne:不等于(Not Equal) !=
- -gt:数大于(Greater Than) >
- -lt:小于(Lesser Than) <
- -le:小于或等于(Lesser or Equal) <=
- -ge:大于或等于(Greater or Equal) >=
逻辑测试
格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...
常用测试操作符
- -a或&&:逻辑与,“而且”的意思全真才为真
- -o或||:逻辑或,“或者”的意思一真即为真
- !:逻辑否
[ 表达式1 ] && [ 表达式2 ] 等同于 [ 表达式1 -a 表达式2 ] 等同于 [[ 表达式1 && 表达式2 ]]
[ 表达式1 ] || [ 表达式2 ] 等同于 [ 表达式1 -o 表达式2 ] 等同于 [[ 表达式1 || 表达式2 ]]
if语句
单分支
if [ 表达式 ] 条件测试
then 命令序列
...
fi 结束
双分支
if [ 表达式 ];then
...
else
...
fi
read -p '输入内容' num
if [ $num -eq $num ]
then
if [ $(($num % 2)) == 0 ]
then
echo '偶数'
else
echo '奇数'
fi
echo '整数'
else
echo '不是整数'
fi
多分支语句
if [ 表达式 ];then
...
elif [ 表达式 ];then
...
elif [ 表达式 ];then
...
[else]
fi
case语句
格式
case 变量值 in
模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
esac