shell学习笔记(五)—— shell条件测试

  • Post author:
  • Post category:其他


1、条件测试的基本语法

语法:

a)、test expression

参数expression是要进行条件测试的表达式,可以由字符串、整数、文件名组成。

b)、[ expression ]

条件表达式expression和左右方括号之间必须有空格。

“[”方括号是一个shell命令,所有,在shell命令和表达式之间,必须有空格。

2、字符串测试

运算符 说明
string 判断string是否是非空
-n  string 判断string是否是非空
-z   string 判断string是否是空串
string1 = string2 判断string1和string2是否相等
string1 != string2 判断string1和string2是否不相等

a="abc"

b="def"

test "$a" = "$b" #等号左右必须得有空格

[ "$a" = "$b" ] #方括号后面,等号左右必须有空格。

#注意,等号左右和方括号前后,都要有空格。

3、整数测试

语法:

test num1 op num2

[ num1 op num2 ]

常见整数运算符:

运算符 说明
num1 -eq num2 等于
num1 -ne num2 不等于
num1 -gt num2 大于
num1 -ge num2 大于或等于
num1 -lt num2 小于
num1 -le num2 小于或等于

注意:整数的比较的运算符是:eq、ne等

4、文件测试

语法:

test  op  file

[  op  file  ]

常见文件操作符:

运算符 说明
-a  file file是存在
-b file file是存在,且为块文件
-c file file是存在,且为字符文件
-d file file是存在,切为目录
-e file file是存在,同-a
-f file file存在,且为常规文件
-s file file是否为非空文件
-L file file是否为符号链接
-r file file是否可读
-w file file是否可写
-x file file是否可执行

5、逻辑测试符

与、或、非:

与:expression1 -a expression2

或:expression1 -o expression2

非:!expression



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