红联Linux门户
Linux帮助

Linux Shell if条件判断

发布时间:2016-05-08 10:38:41来源:linux网站作者:OneSea

1、语法格式

可以使用test或者[来进行[条件判断,下面的两个代码片段是等价的:

if test -f file.c 
then 
.... 
fi 

或者:

if [ -f file.c ] 
then 
... 
fi 

上述代码片段的意义为:file.c是普通文件则执行then与fi之间的代码,可取反为:

if [ ! -f file.c ] 
then 
... 
fi 

上述代码的意义是:如果file.不是普通文件则执行then与fi之间的代码。

多个条件判断时候,要用多个[]对,不能将所有条件都放在一对[]中:

if [ -f file.c ] && [ ! -L file.c ] 
then 
... 
fi 


2、字符串比较

总结字符串比较测试如下:

string1 =  string2 —— 如果两个字符串相同则结果为真

string1 != string2 —— 如果两个字符串结果不同则结果为真

-n string —— 如果字符串不为空则结果为真

-z string —— 如果字符串为空(null)则结果为真


3、算术比较

总结算术比较测试如下:

expresion1 -eq expression2 —— 如果两个表达式结果相等则结果为真

expresion1 -ne expression2 —— 如果两个表达式结果不相等则结果为真

expresion1 -gt expression2 —— 如果expression1大于expression2则结果为真

expresion1 -ge expression2 —— 如果expression1大等于expression2则结果为真

expresion1 -lt expression2 —— 如果expression1 小于expression2则结果为真

expresion1 -le expression2 —— 如果expression1小等于expression2则结果为真

! expression


4、文件条件测试

总结文件条件测试如下:

-d file —— 如果文件是一个目录则结果为真

-e file —— 如果文件存在则结果为真

-f file —— 如果文件是一个普通文件(包括软连接文件)则结果为真

-g file —— 如果文件的set-group-id位被设置则结果为真

-L file —— 如果文件为软连接则结果为真

-r file —— 如果文件可读则结果为真

-s file —— 如果文件的大小不为0则结果为真

-u file —— 如果文件的set-user-id位被设置则结果为真

-w file —— 如果文件可写则结果为真

-x file —— 如果文件可执行则结果为真


本文永久更新地址:http://www.linuxdiyf.com/linux/20443.html