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 sucess
else
echo fail
fi</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 sucess
else
echo fail
fi</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 fail
fi</strong>
前增量后增量什么的不知道怎么测试。其他的应该正常的。
②使用双方括号,这里可以替代前面比较字符串的方法。
并且在双方括号里面可以使用模式匹配的方法。
#!/bin/bash
#20160814
var1=aaaa
if [[ $var1 == a* ]]
then
echo \$var1=$var1
else
echo fail
fi
点击这里 这里是有关模式匹配的详细介绍
转载请注明原文地址: https://ju.6miu.com/read-1296333.html