在shell脚本中,可以用if、if else及逻辑运算符进行测试。 用一些比较运算符来比较数据项,还有一个test命令,也可以用来进行测试。
先说下if语句的判断方式,一般如下:
if condition;
if conditions;
if与else语句可以嵌套。if的条件判断部分可能会很长,如遇到这样的情况时,可考虑用逻辑运算符使其简洁一些: 下面分别来介绍shell中的算术比较方法、文件系统相关测试、字符串比较方法。
一、算术比较
其它一些常用的操作符,如下:
[ $var1 -ne 0 -a $var2 -gt 2 ] #使用逻辑与-a
[ $var1 -ne 0 -o $var2 -gt 2 ] # 逻辑或 -o
二、文件系统的相关测试
-r file 用户可读为真
-w file 用户可写为真 -x file 用户可执行为真 -f file 文件为正规文件为真 -d file 文件为目录为真 -c file 文件为字符特殊文件为真 -b file 文件为块特殊文件为真 -s file 文件大小非0时为真 -t file 当文件描述符(默认为1)指定的设备为终端时为真
例1:
三、字符串比较
字符串判断:
str1 = str2 当两个串有相同内容、长度时为真
str1 != str2 当串str1和str2不等时为真 -n str1 当串的长度大于0时为真(串非空) -z str1 当串的长度为0时为真(空串) str1 当串str1为非空时为真 注意:等号=的前后,要有一个空格。不加空格,就不是比较,而变成赋值操作了。
四、技巧
复制代码代码示例:
if [[ -n $var1 ]] && [[ -z $var2 ]];
then commands; fi
例2:
另外,test命令也可以用来执行条件检测。
例3: 至此,有关shell编程中,比较与测试的一些方法就介绍完了,建议大家注意其中标红的几个知识点,好好琢磨掌握下。 (责任编辑:IT) |