Shell中的if-test语句

1.test命令是什么?

test时shell的内置命令,用来检测某个条件是否成立。

它通常和if语句一起使用,,大部分if语句都依赖test。test命令有很多选项,可以进行数值,字符串还有文件三个方面的检测。

它的用法为:

test expression     #当test 判断expression成立时,退出状态为 0,否则为非0。

test命令可以缩写成 [] ,用法为 [ expression ] ,里面的空格不能丢。

2.数值比较

n1 -eq n2       #检查n1是否等于n2
n1 -ne n2       #检查n1是否与n2不等
n1 -ge n2       #检查n1是否大于等于n2
n1 -gt n2       #检查n1是否大于n2
n1 -le n2       #检查n1是否小于等于n2
n1 -lt n2       #检查n1是否小于n2

如图:

3.字符串比较

str1 = str2             #检查str1是否和str2相同
str1 != str2            #检查str1是否和str2不同
str1 < str2             #检查str1是否比str2小
str1 > str2             #检查str1是否和str2是否比str2大
-n str1                 #检查str1长度是否为非0
-z str1                 #检查str1长度是否为0

如图:

注意:这里的 > 必须转义,不然系统会以为是重定向

注意:未初始化或者未定义的字符默认为空

3.文件比较

-d file                              #检查file是否存在并是一个目录
-e file                              #检查file是否存在
-f file                              #检查file是否存在并是一个文件
-r file                              #检查file是否存在并可读
-w file                              #检查file是否存在并可写
-x file                              #检查file是否存在并可执行
-s file                              #检查file是否存在并非空
-0 file                              #检查file是否存在并属当前用户所有
-G file                              #检查file是否存在并且默认组与当前用户相同
file1 -nt file2                      #检查file1是否比file2新
file1 -ot file2                      #检查file1是否比file2旧

如图:

检查是否是目录:

检查目录是否存在并且目录中某个文件是否是文件(这句话感觉怪怪的~)

检查某路径下的某文件是否可读(嵌套使用)

发布了90 篇原创文章 · 获赞 18 · 访问量 7569

猜你喜欢

转载自blog.csdn.net/qq_42806574/article/details/104310863