Shell——条件判断

目录

一、格式

二、常用条件判断

三、组合判断


一、格式

        test+表达式,或者使用中括号[](中括号前后一定要有空格,Linux中没有空格一般都会看作一个整体变量

[root@hadoop-master sh_test]# a=hi

#判断1
[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

#判断2
[root@hadoop-master sh_test]# [ $a = hello ]
[root@hadoop-master sh_test]# echo $?
1

二、常用条件判断

(一)两整数

  1. -eq(equal):等于
  2. -lt(less than):小于
  3. -gt(greater than):大于
  4. -ne(not equal):不等于
  5. -le(less equal):小于等于
  6. -ge(greater equal):大于等于
  7. 若是字符串,使用"="或者"!="判断是否相等
[root@hadoop-master sh_test]# [ 2 < 8 ]
-bash: 8: 没有那个文件或目录

[root@hadoop-master sh_test]# [ 2 -ge 8 ]
[root@hadoop-master sh_test]# echo $?
1

(二)文件权限

  1. -r:读(read)
  2. -w:写(write)
  3. -x:执行(execute)
[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

(三)文件类型

  1. -e:文件存在(existence)
  2. -f:文件存在并且是一个常规文件(file)
  3. -d:文件存在并且是一个目录(directory)

三、组合判断

        使用&&与||将多个条件判断相连起来,其中&&的优先级更高一些

猜你喜欢

转载自blog.csdn.net/m0_73716246/article/details/143113609