条件测试
格式一:test 条件表达式
格式二:[条件表达式]
文件测试
操作符[操作符 文件或者目录]
常用操作符 | 说明 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限写入(Write) |
-x | 测试当前用户是否有权限执行(eXcute) |
字符串比较
格式1:[字符串1=字符串2]
[字符串1!=字符串2]
格式2:[-z 字符集]
常用操作符 | 说明 |
---|---|
= | 字符串内容相同 |
!= | 字符串内容不同,!号表示相反的意思 |
-z | 字符串内容为空 |
-n | 检查是否有字符串存在 |
整数值比较
格式 [整数变量1 操作符 整数变量2]
常用操作符 | 说明 |
---|---|
-eq | 等于(Equal) |
-ne | 不等于(Not Equal) |
-lt | 小于(Leser Than) |
-gt | 大于(Greater Than) |
-le | 小于或等于(Lesser or Equal) |
-ge | 大于或等于(Greater or Equal) |
(用户大于二时输出 user is to many)
逻辑测试
格式:[表达式1] 操作符 [表达式2]
常用操作符 | 说明 |
---|---|
-a或&& | 逻辑与,而且的意思 |
-o或▕▕ | 逻辑或,或者的意思 |
! | 逻辑否 |
if语句的结构
单分支结构
只有在条件成立的时候才会执行相应的操作,否则不执行。
格式:
if 条件测试操作
then
命令序列
fi
双分支if语句
格式:
if 条件测试操作
then
命令序列 1
else
命令序列 2
fi
case分支语句
case语句的结构
用于变量存在多种取值,对每种取值执行不同的命令
与if相似
case 变量值 in
模式一)
命令序列
;;
模式二)
命令序列
;;
……
*)
默认命令序列
esac
case语句注意事项
case行首必须以单词“in”,每一模式必须以单个右括号")"结束
双分号";;"表示命令序列的结束
模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]";还可以使用竖杠|表示或,比如a|b
最后的*)表示默认模式,其中的*相当于通配符