if 格式
if condition
then
statements
[elif condition
then statements. ..]
[else
statements ]
fi
和 C程序不一样,bash的判断不是通过boolean,而是通过statement,也就是执行命令后的最终状态(exit status)。所有的Linux命令,无论你是代码是C还是脚本,执行完,都返回一个整数通知他的调用这,这就是exit status,通常0表示OK,其他(1-255)表示错误。这只是通常的情况,例如diff,0表示你no difference,1表示difference,2表示错误。if判断statements的最后一个的exit status,通常我们只放一个statement,如果为0,表示true,否则表示false。
条件结合
和c语言一样,可以进行条件结合,使用&&,||,以及!三种方式,表示“和”,“或”,与”非“,格式如下:if statement1 && statement2, if statement1 || statement2 ,if ! statement1 。
exit status不是判断的唯一值,可以使用[…]和[[…]]。
字符串比较
字符串比较是放置在[…]中,有以下的几种:
str1 = str2,字符串1匹配字符串2
str1 != str2,字符串1不匹配字符串2
str1 > str2,字符串1大于字符串2
str1 < str2,字符串1小于字符串2
-n str,字符串不为null,长度大于零
-z str,字符串为null,长度为零
整数比较
>或者<或者=是用于字符串的比较,如果用于整数比较,使用:
-lt,小于
-le,小于等于
-eq,等于
-ge,大于等于
-gt,大于
-ne,不等于