-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path11.4_condition
71 lines (49 loc) · 2.83 KB
/
11.4_condition
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
## 按文件类型进行判断
-b 文件 判断该文件是否存在,并且是否为设备文件
-c 文件 判断该文件是否存在,并且是否为字符设备
-d 文件 判断该文件是否存在,并且是否为目录文件
-e 文件 判断该文件是否存在
-f 文件 判断该文件是否存在,并且是否为普通文件
-L 文件 判断该文件是否存在,并且是否为符号连接文件
-p 文件 判断该文件是否存在,并且是否为管道文件
-s 文件 判断该文件是否存在,并且是否为非空
-S 文件 判断该文件是否存在,并且是否为套接字文件
可用test进行判断:
test -b 文件
或者在用中括号
[ -e 文件 ]
但左右中括号和中间的命令之间必须要有空格
----------------------------------------------------------------------
## 按文件权限进行判断
-r 文件 判断该文件是否存在,并且是否该文件拥有读权限
-w 文件 判断该文件是否存在,并且是否该文件拥有写权限
-x 文件 判断该文件是否存在,并且是否该文件拥有执行权限
-u 文件 判断该文件是否存在,并且该文件是否拥有SUID权限
-g 文件 判断该文件是否存在,并且该文件是否拥有SGID权限
-k 文件 判断该文件是否存在,并且该文件是否拥有SBit权限
要注意的是,些权限判断并不判断用户或用户组,无论是所有者、所属组、其他人任一个拥有对应的权限,那么这个判断就会返回真
----------------------------------------------------------------------------
## 两个文件之间进行比较
文件1 -nt 文件2 判断文件1的修改时间是否比文件2的新
文件1 -ot 文件2 判断文件1的修改时间是否比文件2的旧
文件1 -ef 文件2 判断文件1是否和文件2的inode号一致。可用于判断硬链接
-----------------------------------------------------------------------
## 两个整数之间比较
数1 -eq 数2 判断数1是否等于数2
-ne 判断是否不等
-gt 判断数1是否大于数2
-lt 判断数1是否小于数2
-ge 判断数1是否大于等于数2
-le 判断数1是否小于等于数2
-----------------------------------------------------------------------
## 字符串判断
-z 字符串 判断字符串是否为空
-n 字符串 判断字符串是否非空
字符串1 == 字符串2 判断两个字符串是否相等
字符串1 != 字符串2 判断两个字符串是否不等
----------------------------------------------------------------------
## 多重条件判断
判断1 -a 判断2 逻辑与,两个判断都为真,最终结果才为真
判断1 -o 判断2 逻辑或,两个其一为真,最终结果为真
!判断 逻辑非,使原始的判断式取反
----------------------------------------------------------------------