阅读(4958) (17)

Bash if-else语句

2020-06-17 14:44:04 更新

if-else语句同if用于在代码语句的顺序执行流程中执行条件任务。当判断为true,执行第一组给定的代码语句。当判断为false,执行另一组给定的代码语句。

基础

语法:

if [ condition ];
then
   <if block commands>
else
  <else block commands>
fi

注:
- condition 是条件语句。
- block commands 是给定的执行语句。
- 可以使用一组以逻辑运算符连接的一个或多个条件。
- 其他块命令包括一组在条件为false时执行的代码语句。
- 条件表达式后的分号 ;是必须的。

示例:

#!/bin/bash


#when the condition is true
if [ 10 -gt 3 ];
then
  echo "10 is greater than 3."
else
  echo "10 is not greater than 3."
fi


#when the condition is false
if [ 3 -gt 10 ];
then
  echo "3 is greater than 10."
else
  echo "3 is not greater than 10."
fi

执行后得到以下结果:

10 is greater than 3.
3 is not greater than 10.

单行编写

您可以在一行中编写完整的if-else语句以及命令。需要遵循以下规则:

  • ifelse的语句末尾使用;
  • 使用空格作为分隔符以此追加其他语句。

示例:

#!/bin/bash


read -p "Enter a value:" value
if [ $value -gt 9 ]; then echo "The value you typed is greater than 9."; else echo "The value you typed is not greater than 9."; fi

执行后得到以下结果:

Enter a value:3
The value you typed is not greater than 9.

嵌套语句

if语句的嵌套一样,if-else语句也能够嵌套使用。如下示例:

#!/bin/bash


read -p "Enter a value:" value
if [ $value -gt 9 ];
then
  if [ $value -lt 11 ];
  then
     echo "$value>9, $value<11"
  else
    echo "The value you typed is greater than 9."
  fi
else echo"The value you typed is not greater than 9."
fi

执行后得到以下结果:

Enter a value:5
The value you typed is not greater than 9.