目录
一、条件测试
1. test 命令
测试表达式是否成立,若成立返回0,否则返回其他数值
格式一: test 条件表达式
格式二 : [ 条件表达式 ]
2.文件测试
[ 操作符 文件或目录 ]
常用的操作符 | 解释 |
---|---|
-e | 测试目录或文件是否存在(Exist) |
-d | 测试是否为目录(Directory) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试是否设置有可执行(Excute)权限 |
-L | 测试是否为符号链接 |
3.整数值比较
格式1:
[ 整数变量1 操作符 整数变量2 ]
常用操作符 | 解释 |
---|---|
-eq | 等于 |
-ne | 不等于 |
-gt | 大于 |
-lt | 小于 |
-ge | 大于等于 |
-le | 小于等于 |
格式2:
( 整数值1 操作符 整数值2 )
常用操作符 | 解释 |
---|---|
== | 等于 |
!= | 不等于 |
\> | 大于 |
\< | 小于 |
>= | 大于等于 |
<= | 小于等于 |
4.字符串比较
格式1:
[ 字符串1 操作符 字符串2 ]
常用操作符 | 解释 |
---|---|
= | 相同 |
!= | 不相同 |
格式2:
[ 操作符 字符串 ]
常用操作符 | 解释 |
---|---|
-z | 检查字符串是否为空(Zero) |
-n | 检查是否有字符串存在 |
5.逻辑测试
[ 表达式1] 操作符 [表达式2]
常用操作符 | 解释 |
---|---|
&& | 逻辑与(前后都成立) |
-a | |
|| | 逻辑或(成立其中一个) |
-o | |
! | 逻辑否 |
二、if语句结构
1. 单分支结构
if 条件测试操作
then 命令序列
fi
2.双分支结构
if 条件测试操作
then 命令序列1
else 命令序列2
fi
3. 多分支结构
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
...
else ...
...
fi
三、case语句结构
#!/bin/bash
read -p "请输入一个字符:" KEY
case "$KEY" in #"KEY"为变量名
[a-z]|[A-Z]) #匹配的变量值
echo "输入的是字母" #执行的操作
;;
[0-9])
echo "输入的是数字"
;;
*)
echo "输入的是其他字符"
#没有匹配的值时执行的操作
esac #结束语句