【学习Linux】结构化命令——if

来源:互联网 发布:复杂网络模型 编辑:程序博客网 时间:2024/05/17 21:48

if...then语句

(这里先补充一点,每个命令执行都会返回一个整数,执行成功返回1,执行失败根据失败的原因返回不同的数值)
语句形式 : 
if  命令
then 命令
fi
这是最简单的if语句。
if  命令
then 
命令
else
命令
fi
这个形式加上了else。then后面或者else后面可以写的命令是多条不是一条。
if  命令1
then 
命令
elif命令2
then
命令
fi
这个是else if 的写法

if语句就有这3种形式。但是前面的判断条件里只有命令,也就是说命令执行成功就执行什么,命令执行失败执行其他的。这样做很不方便。


test命令

这个命令使其他的东西也能成为判断条件。
写法:
if  test condition
then 命令
fi

test命令的另一种写法
if  [ condition ]
then 命令
fi
注意condition前后的空格。

①比较数值(我们经常需要比较2个整数的大小

示例:这个是测试2个数是否相等,只需要改变-eq为别的就好了。注意空格问题。
<strong>#!/bin/bash</strong>
<strong>#20160814</strong>
<strong>var1=1</strong>
<strong>var2=2</strong>
<strong>if [ $var1 -eq $var2 ]then    echo sucesselse    echo failfi</strong>

②比较字符串(使用大于或者小于符号时记得加上转义符)

<strong>示例:只有一个等于号,不是2个。 -n是判断字符串的长度是否不等于0,-z是判断是否等于0</strong>
<strong>#!/bin/bash</strong>
<strong>#20160814</strong>
<strong>var1=aaaa</strong>
<strong>var2=bbbb</strong>
<strong>if [ $var1 = $var2 ]then    echo sucesselse    echo failfi</strong>

③比较文件



高级的test命令
高级的test命令可以进行复杂一点的数学计算。
①使用双圆括号,在双圆括号里面可以使用下面这些运算符号,并且不用转义,还有,使用双圆括号之后,括号里的判断根其他语言就一样了。判断是否相等还是要用2个等于号。这里应该是可以替代前面比较整数的方法的。

<strong>#!/bin/bash</strong>
<strong>#20160814</strong>
<strong>var1=1</strong>
<strong>var2=2</strong>
<strong>if (( $var1 < $var2 ))then</strong>
<strong>    (( var1=$var1 ** 2 ))</strong>
<strong>    echo \$var1=$var1</strong>
<strong>else    echo failfi</strong>
前增量后增量什么的不知道怎么测试。其他的应该正常的。

②使用双方括号,这里可以替代前面比较字符串的方法。
并且在双方括号里面可以使用模式匹配的方法。
#!/bin/bash
#20160814
var1=aaaa
if [[ $var1 == a* ]]then
    echo \$var1=$var1
else    echo failfi

点击这里这里是有关模式匹配的详细介绍


0 0
原创粉丝点击