目录
一、格式
test+表达式或者使用中括号[](中括号前后一定要有空格,Linux中没有空格一般都会看作一个整体变量)
[root@hadoop-master sh_test]# a=hi
[root@hadoop-master sh_test]# test $a = hi
[root@hadoop-master sh_test]# echo $?
0
[root@hadoop-master sh_test]# test $a = hello
[root@hadoop-master sh_test]# echo $?
1
# 注意等号需要空格
[root@hadoop-master sh_test]# [ $a = hello ]
[root@hadoop-master sh_test]# echo $?
1
二、常用条件判断
(一)两整数
-
-eq(equal):等于
-
-lt(less than):小于
-
-gt(greater than):大于
-
-ne(not equal):不等于
-
-le(less equal):小于等于
-
-ge(greater equal):大于等于
-
若是字符串,使用"="或者"!="判断是否相等
[root@hadoop-master sh_test]# [ 2 < 8 ]
-bash: 8: 没有那个文件或目录[root@hadoop-master sh_test]# [ 2 -ge 8 ]
[root@hadoop-master sh_test]# echo $?
1
(二)文件权限
- -r:读(read)
- -w:写(write)
- -x:执行(execute)
javascript
[root@hadoop-master sh_test]# ll
总用量 8
-rwxr-xr-x. 1 root root 35 10月 21 15:13 add.sh
-rwxr-xr-x. 1 root root 112 10月 21 11:26 hello.sh
-rw-r--r--. 1 root root 0 10月 21 16:02 test.sh
[root@hadoop-master sh_test]# [ -x add.sh ]
[root@hadoop-master sh_test]# echo $?
0
[root@hadoop-master sh_test]# [ -x test.sh ]
[root@hadoop-master sh_test]# echo $?
1
(三)文件类型
- -e:文件存在(existence)
- -f:文件存在并且是一个常规文件(file)
- -d:文件存在并且是一个目录(directory)
三、组合判断
使用&&与||将多个条件判断相连起来,其中&&的优先级更高一些