shell基本运算符
假定变量a的值为50,b的变量值为60
关系运算符:
-
- -eq 检测两个数是否相等,相等返回true [$a -eq $b] 返回false
- -ne 检测两个数是否相等,不相等返回true [$a -ne $b]返回true
- -gt 检测左边的数是否大于右边的,如果是,则返回true [$a -gt $b]返回false
- -lt 检测左边的数是否小于左边的,如果是,则返回true [$a -lt $b]返回true
- -ge 检测左边的数是否大于等于右边的,如果是,则返回true [$a -ge $b]返回false
- -le 检测左边的数是否小于等于右边的,如果是,则返回true [$a -le $b]返回true
布尔运算符:
-
- ! 非运算,表达式为true,则返回false,否则返回true [!false]返回true
- -o 或运算符,有一个表达书为true则返回true [$a -lt 20 -o $b -gt 100] 返回true
- -a 与运算,两个表达式都为true才返回true [$a -lt 20 -a -gt 100]返回false
逻辑运算符:
-
- && 逻辑的AND [[$a -lt 100 && $b -gt 100]] 返回false
- || 逻辑OR [[$a -lt 100 || $b -gt 100]]返回true
文件测试运算符:
-
- -b file 检测文件是否是块模块文件,如果是,则返回true [-b $file]返回false
- -c file 检测文件是否是字符设备文件,如果是返回true [-c $file]返回false
- -d file 检测文件是否是目录,如果是返回true [-d $fild]返回false
- -f file 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是返回true [-f $file] 返回true
- -g file 检测文件是否设置了SGID位,如果是返回true [-g $file]返回false
- -r file 检测文件是否可读,如果是返回true [-r $file]返回true
- -w file 检测文件是否可写,如果是则返回true [-w $file]返回true
- -x file 检测文件是否可执行,如果是则返回true [-x $file]返回true
- -s file 检测文件是否为空(文件大小是否大于0),不为空返回true [-s $file]返回true
- -e file 检测文件(包括目录)是否存在,如果是,则返回true [-e]返回true