- 条件判断语法结构
1.语法:
1. test 条件表达式
2. [ 条件表达式 ]
3. [[ 条件表达式 ]] 支持正则 =~ - 条件判断相关参数
1. 判断文件类型
判断参数 | 含义 |
---|---|
-e | 判断文件是否存在(任意文件类型) |
-f | 判断文件是否存在,并且是一个普通文件 |
-d | 判断文件是否存在,并且是一个目录 |
-L | 判断文件是否存在并且是一个软连接文件 |
-b | 判断文件是否存在并且是一块设备文件 |
-c | 判断文件是否存在是一个字符设备文件 |
-S | 判断文件是否存在并且是一个套接字文件 |
-p | 判断文件是否存在并且是一个命名管道文件 |
-s | 判断文件是否存在并且是否非空文件 |
2.判断文件权限
判断参数 | 含义 |
---|---|
-r | 当前用户对其是否可读 |
-w | 当前用户对其是否可写 |
-x | 当前用户对其是否可执行 |
-u | 是否有suid,高级权限冒险家位 |
-g | 是否sgid,高级权限限制位 |
-k | 是否有t位,高级权限粘滞位 |
3. 判断文件新旧
判断参数 | 含义 |
---|---|
file1 -nt file2 | 比较file1是否比file2新 |
file1 -ot file2 | 比较file1 是否比file2旧 |
file1 -ef file2 | 比较是否为同一个文件,或者判断硬连接,是否指向同一个inode |
4.判断整数
判断参数 | 含义 |
---|---|
-eq | 相等 |
-ne | 不等 |
-gt | 大于 |
-lt | 小于 |
-ge | 大于等于 |
-le | 小于等于 |
5.判断字符串
判断参数 | 含义 |
---|---|
-z | 判断是否为空字符串,字符串长度为0则成立 |
-n | 判断是否为空字符串,字符串长度不为0则成立 |
string1 = string2 | 判断字符串是否相等 |
string1 != string2 | 判断字符串是否不相等 |
6.多重条件判断
判断符号 | 含义 | 举例 |
---|---|---|
-a 和 && | 逻辑与 | [ 1 -eq 1 -a 1 -ne 0 ] [1 -eq 1] &&[1 -ne 0 ] |
-o 和 || | 逻辑或 | [1 -eq 1 -o 1 -ne 1] |
特别说明:
&& 前面表达式为真,才会执行后面代码
|| 前面表达式为假,才会执行后面代码
; 用于分割命令或表达式
3. 流程控制语句
1.if基本语法结构
F:表示false,为假
T表示true,为真
if [ 条件 ];then
command执行命令
fi
[ 条件 ] && command
if [ condition ];then
conmmand1
else
command2
fi
[ 条件 ] && command1 || command2
if [ condition1 ];then
command1
elif [ condition2 ];then
command2
else
command3
fi
```
补充:
read 作用 :从键盘上读入数据,赋给变量