0%

判断语句

判断语句

使用test来进行判断

1
2
3
4
5
6
7
8
9
# test [选项] 文件
test -d /Users/zhanghe/desktop/user/shell
---------------------


示例:
#如果该文件是目录则输出yes,否则输出no
test -d /Users/zhanghe/desktop/user/shell && echo yes || echo no

选项

按照文件类型判断

1
2
3
4
5
6
7
-d  判断文件是否存在,且为目录
-e 判断文件是否存在
-f 判断文件是否存在,且为普通文件
-s 判断文件是否存在,并且是否为非空文件

#示例
test -s stu.txt

按照权限判断

1
2
3
4
5
6
-r 判断文件是否存在,且是否有读权限
-w 判断文件是否存在,且是否有写权限
-x 判断文件是否存在,且是否有执行权限

#示例
test -w stu.txt

数值比较

1
2
3
4
5
6
7
8
9
-eq   比较两个数是否相等
-ne 比较数1是否与数2不相等
-gt 比较数1是否大于数2
-lt 比较数1是否小于数2
-ge 比较数1是否大于等于数2
-le 比较数1是否小于等于数2

#示例
test 1 -eq 2

字符串比较

1
2
3
4
5
6
7
-z  判断字符串是否为空
-n 判断字符串是否非空
== 判断两个字符串是否相等
!= 判断两个字符串是否不等

#示例
test "aa" == "ab"

逻辑判断

1
2
3
4
5
6
-a   逻辑与
-o 逻辑或
! 逻辑非

#示例
test "aa" == "aa" -a "ab" == "aa"

上述的test可以使用[ ]来替代

如:

[ -s stu.txt ]

[ “aa” == “ab” ]