目录
一、条件测试
1.test命令
格式1:test 条件表达式
格式2:[ 条件表达式 ]
- 注意[]两边要空格,否则会失败
- 测试表达式是否成立,若不成立返回0,否则返回其他数值
2.文件测试
格式:[ 操作符 文件或目录 ]
常用的操作符 | 作用 |
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试当前用户是否有权限执行(Excute) |
-L | 测试是否为软连接文件 |
3.整数值比较
格式:[ 整数变量1 操作符 整数变量2 ]
常用的操作符 | 作用 | 符号 |
-eq | 等于(Equal) | == |
-ne | 不等于(Not Equal) | != |
-gt | 大于(Greater Than) | > |
-lt | 小于(Lesser Than) | < |
-le | 小于或者等于(Lesser or Equal) | =< |
-ge | 大于或者等于(Greater or Equal) | => |
4.字符串比较
格式一:
[ "字符串1" = "字符串2" ]或[ "字符串1" == "字符串2" ]
[ "字符串1" != "字符串2" ] #有数字最好用引号引用
格式二:
[ -z "字符串" ] #检查字符串是否为空Zero,对于未定义或赋予空值的变量将视为空串
[ -n "字符串" ] #检查是否有字符串存在
常用选项 | 作用 |
= | 第一个字符串与第二个字符串相同 |
!= | 第一个字符与第二个字符串不相同,“!”表示取反 |
-z | 字符串内容为空 |
5.逻辑测试
常用操作符 | 作用 |
---|---|
-a或者&& | 逻辑与,“而且”的意思 |
-o或ll | 逻辑或,“或者”的意思 |
! | 逻辑否 |
二、if条件语句
1.单分支if
格式:
if 条件测试操作
then
命令序列
fi
2.双分支if
格式:
if 条件测试操作
then
命令序列 1
else
命令序列 2
fi
3.多分支if
格式:
if 条件测试操作 1
then
命令序列 1
elif 条件测试操作 2
then
命令序列 2
[else]
[命令序列 3]
fi
三、case分支语句
case 变量值 in
模式一)
命令序列
;;
模式二)
命令序列
;;
……
*)
默认命令序列
esac
- case行首必须以单词“in”,每一模式必须以单个右括号")"结束
- 双分号";;"表示命令序列的结束
- 模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以使用竖杠|表示或,比如a|b
- 最后的*)表示默认模式,其中的*相当于通配符