1、Shell中的条件判断有四种:
1)[ 判断条件 ] -- 使用的时候前后必须有空格。也是用的最多的
2)test (判断条件) -- 前后必须有空格
3)((判断条件))
4)[[判断条件]] -- 双中括号就不需要转义字符,前后必须有空格。
[]和Test中使用的比较符 | (())和[[]]中使用的比较符 | 说明 |
-eq | ==或= | 相等,equal |
-ne | != | No equal |
-gt | > | Greater than |
-ge | >= | Greater equal |
-lt | < | Less than |
-le | <= | Less equal |
[]和test中使用的操作符 | (())和[[]]中使用的操作符 | 说明 |
-a | && | And |
-o | || | Or |
! | ! | Not 非 |
测试表达式符号 | [] | test | [[]] | (()) |
边界是否需要空格 | 需要 | 需要 | 需要 | 不需要 |
逻辑操作符 | -a –o ! | -a –o ! | && || ! | && || ! |
整数比较操作符 | -eq –ne –gt –ge –lt -le | -eq –ne –gt –ge –lt -le | -eq –ne –gt –ge –lt –le 或 = > >= <= < | -eq –ne –gt –ge –lt –le 或 = > >= <= < |
字符串比较操作符 | = == != | = == != | = == != | = == != |
是否支持通配符匹配 | 不支持 | 不支持 | 支持 | 不支持 |
2、test命令详解
test 表达式:评估一个表达式是真还是假。
test命令参数:
-e:判断文件或文件夹是否存在,存在为真(0),不存在为假(非0) -- 用法:test -e 文件名; echo $?
-f:判断文件是否是普通文件类型
-d:是否是目录类型
-z:字符串为空是真,不为空是假。 Z 是Zero的意思
-n:字符串为空是假,不为空是真。 N 是 NonZero的意思。
字符串比较:“str1” = “str2” 相等判断。 “str1” != “str2” 不相等判断。