2014-11-03 11:41:30 +08:00
Shell 脚本 - 使用 if 语句进行条件检测
2014-10-29 13:09:25 +08:00
================================================================================
2014-11-03 11:41:30 +08:00
[Bourne Shell ](http://en.wikipedia.org/wiki/Bourne_shell ) 的 if 语句和大部分编程语言一样 - 检测条件是否真实, 如果条件为真, shell 会执行这个 if 语句指定的代码块, 如果条件为假, shell 就会跳过 if 代码块,继续执行之后的代码。
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
### if 语句的语法: ###
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
if [ 判断条件 ]
2014-10-29 13:09:25 +08:00
then
command1
command2
……..
last_command
fi
#### Example: ####
#!/bin/bash
number=150
if [ $number -eq 150 ]
then
echo "Number is 150"
fi
2014-11-03 11:41:30 +08:00
#### if-else 语句: ####
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
除了标准的 if 语句之外,我们还可以加入 else 代码块来扩展 if 语句。这么做的主要目的是:如果 if 条件为真,执行 if 语句里的代码块,如果 if 条件为假,执行 else 语句里的代码块。
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
#### 语法: ####
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
if [ 判断条件 ]
2014-10-29 13:09:25 +08:00
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
2014-12-21 10:31:59 +08:00
### If..elif..else..fi 语句 (简写的 else if) ###
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
Bourne Shell 的 if 语句语法中, else 语句里的代码块会在 if 条件为假时执行。我们还可以将 if 语句嵌套到一起,来实现多重条件的检测。我们可以使用 elif 语句( else if 的缩写)来构建多重条件的检测。
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
#### 语法 : ####
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
if [ 判断条件1 ]
2014-10-29 13:09:25 +08:00
then
command1
command2
……..
last_command
2014-11-03 11:41:30 +08:00
elif [ 判断条件2 ]
2014-10-29 13:09:25 +08:00
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
2014-11-03 11:41:30 +08:00
### 多重 if 语句 : ###
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
If 和 else 语句可以在一个 bash 脚本里相互嵌套。关键词 “fi” 表示里层 if 语句的结束,所有 if 语句必须使用 关键词 “fi” 来结束。
2014-10-29 13:09:25 +08:00
2014-12-21 10:31:59 +08:00
基本 if 语句的**嵌套语法**:
2014-10-29 13:09:25 +08:00
2014-11-03 11:41:30 +08:00
if [ 判断条件1 ]
2014-10-29 13:09:25 +08:00
then
command1
command2
……..
last_command
else
2014-11-03 11:41:30 +08:00
if [ 判断条件2 ]
2014-10-29 13:09:25 +08:00
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][a]
2014-11-03 11:41:30 +08:00
译者:[ThomazL](https://github.com/ThomazL)
2014-12-21 10:31:59 +08:00
校对:[wxy](https://github.com/wxy)
2014-10-29 13:09:25 +08:00
本文由 [LCTT ](https://github.com/LCTT/TranslateProject ) 原创翻译,[Linux中国](http://linux.cn/) 荣誉推出
2014-11-02 20:55:02 +08:00
[a]:http://www.linuxtechi.com/author/pradeep/