介绍常用的三种表达式:文件表达式、整型数值表达式、字符串表达式
文件表达式
if [ -f file ] 如果文件存在(或称:file是否为文件)
if [ -d path ] 如果路径存在(或称:path是否为路径)
if [ -s file ] 如果文件存在且非空
if [ -s /root/tomcat/logs/catalina.out ]; then echo "y" ; fi
if [ -r file ] 如果文件存在且可读
if [ -w file ] 如果文件存在且可写
if [ -x file ] 如果文件存在且可执行
整型数值表达式
此处强调数值必须为整型,是因为shell 的[] 对于数值的判断都是基于整数的,如果碰到小数就无能为力了。
当数值为整型时,可以使用-eq/-ne/-ge/-gt/-le/-lt 或者 ==/!=/>=/>/<=/<
if [ int1 -eq int2 ] ==
if [ int1 -ne int2 ] !=
if [ int1 -ge int2 ] >=
if [ int1 -gt int2 ] >
if [ int1 -le int2 ] <=
if [ int1 -lt int2 ] <
字符串变量表达式
If [ $a = $b ] string1等于string2,字符串允许使用赋值号判断等于
if [ $string1 != $string2 ] string1不等于string2
if [ -n $string ] string 非空(非0),返回0(true)
if [ -z $string ] string 为空
if [ $sting ] string 非空,返回0 (和-n类似)