网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
以上,如果我要判断处理异常退出(状态码非0)情况,该怎么办?
别着急: else 来帮你。
**if-then-else语句**
if command
then
commands
else
commands
fi
与 *if-then* 语句相比,这回多了个 **else** 语句,**else** 语句用来判断 **if** 后面的命令非正常退出的情况。
#!/bin/bash
if pwd
then
echo 正常退出
else
echo 非正常退出
fi
甚至,我们还可以变形写出更多的else:
if command1
then
commands
elif
command2
then
command3
fi
但是上面就只能根据退出状态码判断,不能写表达式,你还让我怎么写? 我各个编程语言直接吊打你!
不要慌,客官,请接着往下看:
**test命令**
test命令用于if-then或者if-then-else语句中,主要用于判断列出的条件是否成立,如果成立,就会退出并返回退出状态码0,否则返回非0。
这意味着我们可以通过test命令来写表达式命令了。不过,对于已习惯其它编程语言的程序猿们(没学过的除外),不要高兴得太早,前方有坑,至于是什么坑,待会儿就能看到。
先看看 **test** 命令的基本用法吧:
直接用:
test condition
结合 **if-then** 语句用
if test condition
then
commands
fi
结合 **if-then-else** 语句用
if test condition
then
commands
else
commands
fi
条件成立就执行 **then** 语句,否则 **else** 语句。
**test** 命令只能判断一下三类条件:
* 数值比较
* 字符串比较
* 文件比较
**数值比较:**
![](https://img-blog.csdnimg.cn/20190530121448429.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxOTE5Nw==,size_16,color_FFFFFF,t_70)
例如:
#!/bin/bash
num1=100
num2=200
if test $num1 -eq $num2
then
echo num1等于num2
else
echo num2不等于num2
fi
**使用双括号:**
>
> 注意:括号里面两边都需要有空格
>
>
>
#!/bin/bash
num1=100
num2=200
if (( num1 > num2 ))
then
echo “num1 > num2”
else
echo “num2 <= num2”
**字符串比较:**
![](https://img-blog.csdnimg.cn/20190530121827164.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MzgxOTE5Nw==,size_16,color_FFFFFF,t_70)
#!/bin/bash
var1=test
var2=Test
if test $var1 = $str2
then
echo 相等
else
echo 不相等
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
再深入研究,那么很难做到真正的技术提升。**
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!