Bash if语句

2022-05-06 16:00 更新

if语句在顺序执行代码语句的流程中执行条件性任务。根据设置的条件,判断是否运行一段代码语句。

基础

if语句中,如果判断为true,则执行给定的代码语句进行相关操作。如果判断为false,则略过给定的代码语句不进行相关操作。 基本语法:

  1. if [ expression ];
  2. then
  3. statements
  4. fi

注:
expression 是判断表达式。
statements 是给定的执行语句。

  • 结合&&逻辑运算符使用多个条件:
    1. if [ expression_1 ] && [ expression_2 ];
    2. then
    3. statements
    4. fi
  • 结合||逻辑运算符使用多个条件:
    1. if [ expression_1 ] || [ expression_2 ];
    2. then
    3. statements
    4. fi
  • 同时使用&&||逻辑运算符:
    1. if [[ expression_1 && expression_2 || expression_3 ]];
    2. then
    3. statements
    4. fi

示例:

  1. #!/bin/bash
  2. ## TRUE && TRUE
  3. if [ 8 -gt 6 ] && [ 10 -eq 10 ];
  4. then
  5. echo "Conditions are true"
  6. fi
  7. ## TRUE && FALSE
  8. if [ "mylife" == "mylife" ] && [ 3 -gt 10 ];
  9. then
  10. echo "Conditions are false"
  11. fi

执行后得到以下结果:

  1. Conditions are true

if 语句选项常用列表

选项 描述
! EXPRESSION 检查EXPRESSION是否为假。
-n STRING 检查STRING的长度是否大于零。
-z STRING 检查STRING的长度是否为零(即为空)
STRING1 == STRING2 检查STRING1是否等于STRING2
STRING1 != STRING2 检查STRING1是否不等于STRING2
INTEGER1 -eq INTEGER2 检查INTEGER1在数值上是否等于INTEGER2
INTEGER1 -gt INTEGER2 检查INTEGER1在数值上是否大于INTEGER2
INTEGER1 -lt INTEGER2 检查INTEGER1在数值上是否小于INTEGER2。
-d FILE 检查FILE是否存在并且它是一个目录。
-e FILE 检查FILE是否存在。
-r FILE 检查FILE是否存在,并授予读取权限。
-s FILE 检查FILE是否存在并且其大小大于零(表示它不为空)。
-w FILE 检查FILE是否存在并授予写权限。
-x FILE 检查FILE是否存在并授予执行权限。

嵌套 if 语句

在 Bash 的实际运用中可能会需要多个 if 语句。这时可能就会出现在一个 if 语句中使用另一个 if 语句的情况,这被称为嵌套 if 语句。 示例:

  1. #!/bin/bash
  2. #Nested if statement
  3. if [ $1 -gt 50 ]
  4. then
  5. echo "Number is greater than 50."
  6. if (( $1 % 2 == 0 ))
  7. then
  8. echo "and it is an even number."
  9. fi
  10. fi

执行后得到以下结果:

  1. Number is greater than 50.
  2. and it is an even number.
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号