注册 登录

清河洛

bash中的条件判断

qingheluo2016-12-16清河洛226
一、按照文件类型进行判断,所有判断都是在文件存在的前提下,不存在直接返回假。-b 文件名:判断是否是块设备文件-c 文件名:判断是否是字符设备文件-d 文件名:判断是否是目录文件-e 文件名:单独的判断文件是否存在-f 文件名:判断是否是普通文件-L 文件名:判断是否是符号链接文件-p 文件名:判断是否是管道文件-s 文件名:判断是否是非空-S 文件名:判断是否是套接字文件常用的是-d、-e、-f和-L。二、按照文件权限进行判断,所有判断都是在文件存在的前提下,不存在直接返回假,这个判断不能判断所有者、所属组和其他人的权限,就是说这三类里面只要有一个满足了条件就返回真。-r 文件名:判断...

一、按照文件类型进行判断,所有判断都是在文件存在的前提下,不存在直接返回假。

-b 文件名:判断是否是块设备文件

-c 文件名:判断是否是字符设备文件

-d 文件名:判断是否是目录文件

-e 文件名:单独的判断文件是否存在

-f 文件名:判断是否是普通文件

-L 文件名:判断是否是符号链接文件

-p 文件名:判断是否是管道文件

-s 文件名:判断是否是非空

-S 文件名:判断是否是套接字文件

常用的是-d、-e、-f和-L。

二、按照文件权限进行判断,所有判断都是在文件存在的前提下,不存在直接返回假,这个判断不能判断所有者、所属组和其他人的权限,就是说这三类里面只要有一个满足了条件就返回真

-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号(i节点号)一致,可以理解成两个文件是否是同一个文件(硬链接文件)。

四:两个整数之间比较

整数1 -eq 整数2:判断整数1是否等于整数2

整数1 -ne 整数2:判断整数1是否不等于整数2(不等于为真)

整数1 -gt 整数2:判断整数1是否大于整数2

整数1 -lq 整数2:判断整数1是否小于整数2

整数1 -ge 整数2:判断整数1是否大于等于整数2

整数1 -le 整数2:判断整数1是否小于等于整数2

五、字符串的判断

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

-n 字符串:判断字符串是否是非空

字符串1 == 字符串2:判断两个字符串是否相等

字符串1 != 字符串2:判断两个字符串是否不想等

六、多重条件判断

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

判断1 -o 判断2:逻辑或,判断1和判断2至少有一个真,最终结果才为真

!判断:逻辑非,使原始的判断结果取反

语法格式:

1、test -e /etc/passwd

2、 -e /etc/passwd ,流程控制语句中一般都用这种格式

运行完没有任何输出,需要手动再输入echo $?,来返回上一条命令执行是否正确。

连起来的判断一句:

[ -e /etc/passwd ] && echo "yes" || echo "no"



网址导航