if条件

 

条件表达式

文件表达式

if [ -f  file ]    如果文件存在

if [ -d ...   ]    如果目录存在

if [ -s file  ]    如果文件存在且非空 

if [ -r file  ]    如果文件存在且可读

if [ -w file  ]    如果文件存在且可写

if [ -x file  ]    如果文件存在且可执行   

整数变量表达式

if [ int1 -eq int2 ]    如果int1等于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类似)    

   逻辑表达式

    逻辑非 !                   条件表达式的相反

if [ ! 表达式 ]

if [ ! -d $num ]                        如果不存在目录$num

    逻辑与 –a                    条件表达式的并列

if [ 表达式1  –a  表达式2 ]

    逻辑或 -o                    条件表达式的或

if [ 表达式1  –o 表达式2 ]

[[]]可以说是[]的“增强版”,两者的区别

数字测试: -eq -ne -lt -le -gt -ge,[[ ]]同 [ ]一致

文件测试: -r、-l、-w、-x、-f、-d、-s、-nt、-ot,[[ ]]同 [ ]一致

字符串测试: > < =(同==) != -n -z,不可使用“<=”和“>=”,[[ ]]同 [ ]一致,但在[]中,>和<必须使用\进行转义,即\>和\<

逻辑测试: []为 -a -o ! [[ ]] 为&& || !

数学运算: [] 不可以使用 [[ ]]可以使用+ - * / %

组合: 均可用各自逻辑符号连接的数字(运算)测试、文件测试、字符测试

猜你喜欢

转载自wsyb408.iteye.com/blog/2191085