Bootstrap

linux结构化命令:if-then

最基本的if-then结构:

if  commond

then  

commonds

fi


一、在java中,if条件是使用TURE或者FALSE来做判断,在shell中,则是根据命令的退出状态来的。

如果如果成功执行命令,状态为0,则执行then后面的命令,如果没有成功执行命令,状态为0

以外的其他值,则then后面的命令则不会执行。bash shell 会移动到脚本的下一条命令。


如下是一个脚本:test1.sh



执行结果如下:



可以看到,在第一个if条件中,"dafadfa"肯定是执行不了的,所以报错"command not found”

在 “elif” 中,"date"执行成功,返回0,所以执行了then后面的打印


二、利用test命令做条件判断

在上面的脚本中,if判断的依据都是根据if条件中的命令是否能够执行来作为依据,然而在很多情况下,我们需要比较大小,比较是否

相等。。。我们可以利用test命令,来达到我们的目的。


test命令提供一种检测if-then语句中不同条件的方法。如果test命令中列出的条件评估值为true,test命令则以0的状态码。这是if-then与

其他编程语言中的if-then一样的方法运行。如果test命令中列出的评估值为false,则if-then语句失败

test使用如下:

if  test condition

then

commonds

fi


还有另外一种方式:

if  [ condition]

then 

commdonds

fi


test命令能够评估一下三类条件:

1、数值比较

2、字符串比较

3、文件比较


a、数值比较


测试脚本test2.sh:



执行test2.sh,结果如下:



b、字符串比较



c、文件比较



;