---
author: Pradeep Kumar
category: 软件开发
comments_data:
- date: '2014-12-21 11:03:01'
  message: test和“[”
  postip: 123.125.71.21
  username: 微博评论
- date: '2014-12-21 12:03:01'
  message: 我前段时间看到的，0表示真？
  postip: 113.85.54.34
  username: 微博评论
- date: '2014-12-21 12:03:01'
  message: 记得”[” 前后加空格呢
  postip: 113.85.54.34
  username: 微博评论
- date: '2014-12-21 12:03:01'
  message: '这个可是切切要记得的，不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢'
  postip: 113.85.54.34
  username: 微博评论
- date: '2014-12-21 12:03:01'
  message: '//@Linux中国:这个可是切切要记得的，不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢'
  postip: 113.85.54.34
  username: 微博评论
- date: '2014-12-21 12:33:01'
  message: '//@Linux中国:这个可是切切要记得的，不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢'
  postip: 113.200.205.73
  username: 微博评论
- date: '2014-12-21 16:03:01'
  message: '！get//@Linux中国:这个可是切切要记得的，不要把其他语言中的习惯带来~//@Obotchaman: 记得”[” 前后加空格呢'
  postip: 66.249.79.110
  username: 微博评论
- date: '2014-12-21 23:33:00'
  message: linux Shell 脚本基础
  postip: 124.79.27.145
  username: 微博评论
- date: '2014-12-22 00:03:01'
  message: '@热情萧远山 @kykij  //@Linux中国:这个可是切切要记得的，不要把其他语言中的习惯带来~//@Obotchaman: 记得”[”
    前后加空格呢'
  postip: 68.180.228.107
  username: 微博评论
- date: '2014-12-22 09:33:01'
  message: 长知识
  postip: 61.185.224.115
  username: 微博评论
count:
  commentnum: 10
  favtimes: 2
  likes: 0
  sharetimes: 24
  viewnum: 10638
date: '2014-12-21 10:31:00'
editorchoice: false
excerpt: 'Bourne Shell 的 if 语句和大部分编程语言一样 - 检测条件是否真实，如果条件为真，shell 会执行这个 if 语句指定的代码块，如果条件为假，shell
  就会跳过 if 代码块，继续执行之后的代码。  if 语句的语法： if  then command1 command2 .. last_command fi  Example:
  #!/bin/bash number=150 if  then echo &quot;Number is 150&quot; fi  if-else 语句: 除了标准的
  if 语句之外，我们还可以加入 else 代码块来扩展 if 语句。这么做的主要目的是：如果 if 条件为真，执行 if 语句里的代码块，如果 if 条件为假，执行
  else 语句里的代码块。 语法:'
fromurl: http://www.linuxtechi.com/shell-scripting-checking-conditions-with-if/
id: 4489
islctt: true
largepic: /images/p/201412/21/103252nq0neivincaeeiq0.png
permalink: /article-4489-1.html
pic: /images/p/201412/21/103252nq0neivincaeeiq0.png.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: 'Bourne Shell 的 if 语句和大部分编程语言一样 - 检测条件是否真实，如果条件为真，shell 会执行这个 if 语句指定的代码块，如果条件为假，shell
  就会跳过 if 代码块，继续执行之后的代码。  if 语句的语法： if  then command1 command2 .. last_command fi  Example:
  #!/bin/bash number=150 if  then echo &quot;Number is 150&quot; fi  if-else 语句: 除了标准的
  if 语句之外，我们还可以加入 else 代码块来扩展 if 语句。这么做的主要目的是：如果 if 条件为真，执行 if 语句里的代码块，如果 if 条件为假，执行
  else 语句里的代码块。 语法:'
tags:
- Shell编程
- Shell脚本
thumb: false
title: Shell 脚本基础 - 使用 if 语句进行条件检测
titlepic: false
translator: ThomazL
updated: '2014-12-21 10:31:00'
---

[Bourne Shell](http://en.wikipedia.org/wiki/Bourne_shell) 的 if 语句和大部分编程语言一样 - 检测条件是否真实，如果条件为真，shell 会执行这个 if 语句指定的代码块，如果条件为假，shell 就会跳过 if 代码块，继续执行之后的代码。


![](/images/p/201412/21/103252nq0neivincaeeiq0.png)


### 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](http://www.linuxtechi.com/author/pradeep/) 译者：[ThomazL](https://github.com/ThomazL) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译，[Linux中国](http://linux.cn/) 荣誉推出