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

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

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

if 语句的语法:

  1. if[判断条件]
  2. then
  3. command1
  4. command2
  5. ……..
  6. last_command
  7. fi

Example:

  1. #!/bin/bash
  2. number=150
  3. if[ $number -eq 150]
  4. then
  5. echo "Number is 150"
  6. fi

if-else 语句:

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

语法:

  1. if[判断条件]
  2. then
  3. command1
  4. command2
  5. ……..
  6. last_command
  7. else
  8. command1
  9. command2
  10. ……..
  11. last_command
  12. fi

Example:

  1. #!/bin/bash
  2. number=150
  3. if[ $number -gt 250]
  4. then
  5. echo "Number is greater"
  6. else
  7. echo "Number is smaller"
  8. fi

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

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

语法 :

  1. if[判断条件1]
  2. then
  3. command1
  4. command2
  5. ……..
  6. last_command
  7. elif[判断条件2]
  8. then
  9. command1
  10. command2
  11. ……..
  12. last_command
  13. else
  14. command1
  15. command2
  16. ……..
  17. last_command
  18. fi

Example :

  1. #!/bin/bash
  2. number=150
  3. if[ $number -gt 300]
  4. then
  5. echo "Number is greater"
  6. elif[ $number -lt 300]
  7. then
  8. echo "Number is Smaller"
  9. else
  10. echo "Number is equal to actual value"
  11. fi

多重 if 语句 :

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

基本 if 语句的嵌套语法

  1. if[判断条件1]
  2. then
  3. command1
  4. command2
  5. ……..
  6. last_command
  7. else
  8. if[判断条件2]
  9. then
  10. command1
  11. command2
  12. ……..
  13. last_command
  14. else
  15. command1
  16. command2
  17. ……..
  18. last_command
  19. fi
  20. fi

Example:

  1. #!/bin/bash
  2. number=150
  3. if[ $number -eq 150]
  4. then
  5. echo "Number is 150"
  6. else
  7. if[ $number -gt 150]
  8. then
  9. echo "Number is greater"
  10. else
  11. echo "'Number is smaller"
  12. fi
  13. fi

相关推荐