linux 中的if else语句

来源:互联网 发布:四川网络大学考试平台 编辑:程序博客网 时间:2024/05/17 03:58

linux 中的if  else语句

在shell中。if语句有三种形式,如下:

第一种:

if  condition

then

   command

else 

   command

在这种形式中,其中和c语言不同到是,condition实际上是一个语句列表,而不是一般的布尔表达式(也就是,最后到判断是以condition退出的状态为判断依据,0表示真,非0表示假,这和c语言中恰好相反)。

在shell中命令或者函数在退出时都会返回一个小小的整数给调用他的程序,这是命令的退出状态。

参考:http://blog.csdn.net/lyhdream/article/details/8875164

一下看一个例子:


以上例子中:head -1 /etc/passwd 的返回状态为0,表示真

                         head -1 /etc/shadow  的返回状态为1,表示假

我们新建一个文件judge.sh,写入以下代码:

judge(){
if head -1 /etc/passwd 
then
echo 'true'
else
echo 'false'
fi
}
judge

执行结果:


可以看到打印出true,

将以上函数的if head -1 /etc/passwd 改为if  head -1 /etc/shadow 

执行结果:


第二种:

大多数情况下,可以使用测试命令(test)来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等,test命令也可以[ ]来代替,这是他的另一种形式。

例如 :if  test  2>3  等价于  if  [ 2>3 ](注意[ ]的开始和结束都有空格,打于符号2和3之间没有空格)

将以上函数改为:

judge(){
if test   "aaa" = "bbb"
then
echo 'true'
else
echo 'false'
fi
}
judge

执行结果:


第三种(即使通与test的另一种形式):

if test   "aaa" = "bbb" 改为  if [ "aaa" = "bbb"]

执行结果:


注意:if  test  2>3  与 if  test  2 > 3 是有 区别的,注意比较符号之间的空格

            if [ 2>3 ]  与 [ 2 > 3 ]  也是有区别的,同上






原创粉丝点击