(十)条件判断

3、 条件判断

1:按照文件类型进行判断

-b 文件  判断该文件是否存在,并且是否为块设备文件(是块设备文件为真)

-c 文件  判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真)

-d 文件  判断该文件是否存在,并且是否为目录文件(是目录为真)

-e 文件  判断该文件是否存在(存在为真)

-f 文件  判断该文件是否存在,并且是否为普通文件(是普通文件为真)

-L 文件  判断该文件是否存在,并且是否为符号链接文件(是符号链接文件为真)

-p 文件  判断该文件是否存在,并且是否为管道文件(是管道文件为真)

-s 文件  判断该文件是否存在,并且是否为非空(非空为真)

-S 文件  判断该文件是否存在,并且是否为套接字文件(是套接字文件为真)

 

2: 按照文件权限进行判断

-r 文件  判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真)

-w 文件  判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真)

-x 文件  判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真)

-u 文件  判断该文件是否存在,并且是否该文件拥有 SUID 权限(有 SUID 权限为真)

-g 文件  判断该文件是否存在,并且是否该文件拥有 SGID 权限(有 SGID 权限为真)

-k 文件  判断该文件是否存在,并且是否该文件拥有 SBit 权限(有 SBit 权限为真)

 

特殊权限特殊权限 SUID、SGID、Sticky

(1)为什么要使用特殊权限?

特殊权限可以扩展系统基础权限的功能,使得linux权限更加强大灵活.

 

(1) 进程和文件权限的关系

进程有属主和属组;文件有属主和属组;

(1)  任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否拥有执行权限。

(2) 启动为进程之后,其进程的属主为发起者;进程的属组为发起者所属的组。

(3) 进程访问文件时的权限,取决于进程的发起者。

(a) 进程的发起者,同文件的属主:则应用文件属主权限。

(b) 进程的发起者,属于文件的属组;则应用文件属组权限。

(c) 应用文件“其它”权限。

 

 

3:文件的比较

文件 1 -nt 文件 2 判断文件 1 的修改时间是否比文件 2 的新(如果新则为真)

文件 1 -ot 文件 2 判断文件 1 的修改时间是否比文件 2 的旧(如果旧则为真)

文件 1 -ef 文件 2

判断文件 1 是否和文件 2 的 Inode 号一致,可以理解为两个文件是否为同一个文件。这个判断用于判断硬链接是很好的方法

 

4:两个整数之间比较

整数 1  -eq 整数 2 判断整数 1 是否和整数 2 相等(相等为真)

整数 1  -ne 整数 2 判断整数 1 是否和整数 2 不相等(不相等位置)

整数 1  -gt 整数 2 判断整数 1 是否大于整数 2(大于为真)

整数 1  -lt 整数 2 判断整数 1 是否小于整数 2(小于位置)

整数 1  -ge 整数 2 判断整数 1 是否大于等于整数 2(大于等于为真)

整数 1  -le 整数 2 判断整数 1 是否小于等于整数 2(小于等于为真)

 

5: 字符串的判断

-z字符串       判断字符串是否为空(为空返回真)

-n字符串       判断字符串是否为非空(非空返回真)

字串 1==字2    判断字符串 1 是否和字符串 2 相等(相等返回真)

字串 1!=字串2  判断字符串 1 是否和字符串 2 不相等(不相等返回真

 

6:多重条件判断

判断 1 -a 判断 2  逻辑与,判断 1 和判断 2 都成立,最终的结果才为真

判断 1 -o 判断 2  逻辑或,判断 1 和判断 2 有一个成立,最终的结果就为真

!判断  逻辑非,使原始的判断式取反.

猜你喜欢

转载自www.cnblogs.com/love-life-insist/p/11668818.html