Linux Shell脚本攻略学习总结:二


Linux Shell脚本攻略学习总结:二
 
比较与测试
程序中的流程控制是由比较和测试语句来处理的。
我们可以用if,if else 以及逻辑运算符来执行测试,而用一些比较运算符来比较数据项。另外,有一个test 命令也可以用来进行测试。让我们来看看如何使用这些命令。
 
实战演练:
[python] 
if 条件:  
if condition;  
then  
commands;  
fi  
  
else if 和 else :  
if condition;  
then  
commands;  
elif condition;  
then   
    commands  
else  
    commands  
fi  
 
if和else语句可以进行嵌套。if的条件判断部分可能会变得很长,但可以用逻辑运算符将它变得简洁一些:
[python] 
[ condition ] && action; #如果condition为真,则执行action  
[ condition ] || action; #如果condition为假,则执行action  
 
&&是逻辑与运算符,||是逻辑或运算符。
 
算数比较
条件通常被放在封闭的中括号内。一定要注意在[或]与操作数之间是有一个空格的。如果不加,则脚本会报错。例如:
[python] 
[ $var -eq 0 ] or [ $var -eq 0 ]  
 
对变量值进行算数条件判断:
[python] 
[ $var -er 0 ] #当$var等于0时,返回真  
[ $var -ne 0 ] #当$var为非0时,返回真  
 
其他重要的操作符如下所示:
[python] 
-gt :大于  
-lt :小于  
-ge :大于等于  
-le :小于等于  
 
字符串比较
使用字符串比较时,最好使用双中括号,因为有时候采用单个中括号会产生错误,所以最好避开它们。
[python] 
[[ $str1 = $str2 ]] :当str1等于str2时,返回真。也就是说,str1和str2包含的文本是一样的  
[[ $str1 ==$str2 ]] :这是检查字符串是否相等的另一种写法  
[[ $str1 != $str2 ]] :如果str1和str2不相同,则返回真  
 
我们还可以检查字符串的字母序情况,具体如下所示:
[python] 
[[ $str1 > $str2 ]] :如果str1的字母序比str2的大,则返回真  
[[ $str1 < $str2 ]] :如果str1的字母序比str2的小,则返回真  
[[ -z $str1 ]] :如果str1中包含的是空字符串,则返回真  
[[ -n $str1 ]] :如果str1中包含的是非空字符串,则返回真  
 
注意:
在 = 号前后各有一个空格。如果忘记加空格,那就不是比较关系了,而变成了赋值语句。

相关内容

    暂无相关文章