Linux.中国 - 开源社区

 找回密码
 骑士注册

QQ登录

微博登录


Shell 脚本基础 - 使用 if 语句进行条件检测

2014-12-21 10:31    评论: 10 收藏: 2 分享: 24    

Bourne Shell 的 if 语句和大部分编程语言一样 - 检测条件是否真实,如果条件为真,shell 会执行这个 if 语句指定的代码块,如果条件为假,shell 就会跳过 if 代码块,继续执行之后的代码。

if 语句的语法:

if [ 判断条件 ]
then
        command1
        command2
        ……..
        last_command
fi

Example:

#!/bin/bash
number=150
if [ $number -eq 150 ]
then
    echo "Number is 150"
fi

if-else 语句:

除了标准的 if 语句之外,我们还可以加入 else 代码块来扩展 if 语句。这么做的主要目的是:如果 if 条件为真,执行 if 语句里的代码块,如果 if 条件为假,执行 else 语句里的代码块。

语法:

if [ 判断条件 ]
then
       command1
       command2
       ……..
       last_command
else
       command1
       command2
       ……..
       last_command
fi

Example:

#!/bin/bash
number=150
if [ $number -gt 250 ]
then
    echo "Number is greater"
else
    echo "Number is smaller"
fi

If..elif..else..fi 语句 (简写的 else if)

Bourne Shell 的 if 语句语法中,else 语句里的代码块会在 if 条件为假时执行。我们还可以将 if 语句嵌套到一起,来实现多重条件的检测。我们可以使用 elif 语句(else if 的缩写)来构建多重条件的检测。

语法 :

if [ 判断条件1 ]
then
       command1
       command2
       ……..
       last_command
elif [ 判断条件2 ]
then
        command1
        command2
        ……..
        last_command
else
command1
command2
……..
last_command
fi

Example :

#!/bin/bash
number=150
if [ $number -gt 300 ]
then
    echo "Number is greater"
elif [ $number -lt 300 ]
then
    echo "Number is Smaller"
else
    echo "Number is equal to actual value"
fi

多重 if 语句 :

If 和 else 语句可以在一个 bash 脚本里相互嵌套。关键词 “fi” 表示里层 if 语句的结束,所有 if 语句必须使用 关键词 “fi” 来结束。

基本 if 语句的嵌套语法

if [ 判断条件1 ]
then
        command1
        command2
        ……..
        last_command
else
if [ 判断条件2 ]
then
        command1
        command2
        ……..
        last_command
else
        command1
        command2
         ……..
         last_command
      fi
fi

Example:

#!/bin/bash
number=150
if [ $number -eq 150 ]
then
   echo "Number is 150"
else
if [ $number -gt 150 ]
then
    echo "Number is greater"
else
    echo "'Number is smaller"
   fi
fi

via: http://www.linuxtechi.com/shell-scripting-checking-conditions-with-if/

作者:Pradeep Kumar 译者:ThomazL 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

发表评论


最新评论

我也要发表评论

石榴的秋天 2014-12-22 09:33  新浪微博网友评论
长知识
回复
ruochen_SH 2014-12-22 00:03  新浪微博网友评论
@热情萧远山 @kykij //@Linux中国:这个可是切切要记得的,不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢
回复
苏生不惑 2014-12-21 23:33  新浪微博网友评论
linux Shell 脚本基础
回复
thomas-wx 2014-12-21 16:03  新浪微博网友评论
!get//@Linux中国:这个可是切切要记得的,不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢
回复
ff8china 2014-12-21 12:33  新浪微博网友评论
//@Linux中国:这个可是切切要记得的,不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢
回复
罗曼-Czk 2014-12-21 12:03  新浪微博网友评论
//@Linux中国:这个可是切切要记得的,不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢
回复
Linux中国 2014-12-21 12:03  新浪微博网友评论
这个可是切切要记得的,不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢
回复
Obotchaman 2014-12-21 12:03  新浪微博网友评论
记得”[” 前后加空格呢
1 回复
DarcyMe 2014-12-21 12:03  新浪微博网友评论
我前段时间看到的,0表示真?
回复
乚乛乁乀 2014-12-21 11:03  新浪微博网友评论
test和“[”
回复

热点评论

Obotchaman 2014-12-21 12:03
记得”[” 前后加空格呢
1
返回顶部

分享到微信朋友圈

打开微信,点击底部的“发现”,
使用“扫一扫”将网页分享至朋友圈。