Shell条件判断的三种方式

一、三种方式
1. test 条件表达式
2. [条件表达式]
3. [[条件表达式]]支持正则
注意 :[ ] 和 [[ ]] 括号左右两边需要留空格
二、常用判断条件

-e 		#判断文件是否存在(任何类型文件) [ -e ./app ]; echo $?
-f 		#判断文件是否存在并且是一个普通文件	[ -f ./stu ]; echo $?
-d 		#判断文件是否存在并且是一个目录	[ -d ./app ]; echo $?
-L 		#判断文件是否存在并且是一个软连接文件	[ -L ./test ]; echo $?
-b 		#判断文件是否存在并且是一个设备文件
-S 		#判断文件是否存在并且是一个套接字文件
-c 		#判断文件是否存在并且是一个字符设备文件
-p 		#判断文件是否存在并且是一个命名管道文件


-r		#当前用户对其是否可读	[ -r ./frist_text.sh ]; echo $?
-w		#当前用户是否可写
-x 		#当前用户对其是否可执行
-u 		#是否有suid 高级权限冒险位
-g 		#是否sgid,高级权限强制位
-k 		#是否有T位,高级权限粘滞位


判断文件新旧

file1 -nt file2		#比较file是否file2新	test stu -nt stu2; echo $?
file1 -ot file2 	#比较file1是否比file2旧	test stu -nt stu2; echo $?
file1 -ef file2 	#比较是否为同一个文件,或者用于判断硬连接,是否指向同一个inode

-eq			#相等	[ 1 -eq 2 ];echo $?
-ne 		#不等
-gt 		#大于
-lt 		#小于
-ge 		#大于等于
-le 		#小于等于

-z 判断是否为空字符,字符串长度为0则成立	[ -z "" ];echo $?
-n 判断是否为非空字符串,字符串长度不为0则成立	[ -z "aaa" ];echo $?
string1 = string2 判断字符串是否相等
string1 != string2 判断字符串是否不相等

-a 和 && 逻辑与  (全真为真,有假就假)
-o 和 || 逻辑或  	(全假才假,有真必真)
a&&b:a和b同时为true 才返回 true, 否则返回false;
a || b:a或b任意一个为true 就返回true , 否则返回false

在这里插入图片描述


版权声明:本文为weixin_45627031原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。