bash if语句

本文概述

  • 基本的if语句
  • Bash脚本中If语句的选项
  • if嵌套
  • 结论
【bash if语句】在本主题中,我们将了解如何在Bash脚本中使用if语句来完成我们的自动化任务。
如果声明有益,请立即执行。它们用于在顺序执行语句的流程中执行条件任务。 If语句通常允许我们在Bash脚本中做出决定。它们帮助我们根据可能设置的条件来决定是否运行一段代码。
基本的if语句基本的if语句命令如果特定条件为true,则仅执行给定的一组操作。如果不正确,则不要执行这些操作。 if语句基于以下格式:
句法
if [ expression ]; then statements fi

仅当表达式(在方括号之间)为真时,才会执行then和fi之间的语句(如果向后)。
注意:观察第一行中使用的空格,并在第一行末尾使用分号。两者都必须使用。如果条件语句以fi结尾。
  • 使用AND运算符使用多个条件:
if [ expression_1 ] & & [ expression_2 ]; then statements fi

  • 使用OR运算符使用多个条件:
if [ expression_1 ] || [ expression_2 ]; then statements fi

  • 对于带有AND的复合表达式
if [ expression_1 & & expression_2 || expression_3 ]; then statements fi

以下是一些演示if语句用法的示例:
例子1
在此示例中,采用任意数字的用户输入,并检查该值是否大于125。
#!/bin/bashread -p " Enter number : " numberif [ $number -gt 125 ] then echo "Value is greater than 125" fi

输出量
如果输入数字159,则输出将如下所示:
bash if语句

文章图片
例子2
在此示例中,我们通过比较两个字符串的简单场景演示了if语句的用法:
#!/bin/bash# if condition is true if [ "myfile" == "myfile" ]; then echo "true condition" fi# if condition is false if [ "myfile" == "yourfile" ]; then echo "false condition" fi

输出量
bash if语句

文章图片
例子3
在此示例中,我们演示如何使用if语句比较数字:
#!/bin/bash#if condition (greater than) is true if [ 10 -gt 3 ]; then echo "10 is greater than 3." fi#if condition (greater than) is false if [ 3 -gt 10 ]; then echo "3 is not greater than 10." fi#if condition (lesser than) is true if [ 3 -lt 10 ]; then echo "3 is less than 10." fi#if condition (lesser than) is false if [ 10 -lt 3 ]; then echo "10 is not less than 3." fi#if condition (equal to) is true if [ 10 -eq 10 ]; then echo "10 is equal to 10." fi#if condition (equal to) is false if [ 10 -eq 9 ]; then echo "10 is not equal to 9" fi

输出量
bash if语句

文章图片
例子4
在此示例中,我们将定义如何使用AND运算符在if表达式中包含多个条件:
#!/bin/bash# TRUE & & TRUE if [ 8 -gt 6 ] & & [ 10 -eq 10 ]; then echo "Conditions are true" fi# TRUE & & FALSE if [ "mylife" == "mylife" ] & & [ 3 -gt 10 ]; then echo "Conditions are false" fi

输出量
bash if语句

文章图片
例子5
在此示例中,我们将定义如何使用OR运算符在if表达式中包括多个条件:
#!/bin/bash# TRUE || FALSE if [ 8 -gt 7 ] || [ 10 -eq 3 ]; then echo " Condition is true. " fi# FALSE || FALSE if [ "mylife" == "yourlife" ] || [ 3 -gt 10 ]; then echo " Condition is false. " fi

输出量
bash if语句

文章图片
例子6
在此示例中,我们将定义如何使用AND和OR在if表达式中包括多个条件:
#!/bin/bash# TRUE & & FALSE || FALSE || TRUE if [[ 10 -eq 10 & & 5 -gt 4 || 3 -eq 4 || 3 -lt 6 ]]; then echo "Condition is true." fi# TRUE & & FALSE || FALSE if [[ 8 -eq 8 & & 8 -gt 10 || 9 -lt 5 ]]; then echo "Condition is false" fi

输出量
bash if语句

文章图片
Bash脚本中If语句的选项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语句。

在此示例中,我们将使用嵌套的if表达式来查找“给定数字是否大于50,并且是否为偶数”。
#!/bin/bash #Nested if statementif [ $1 -gt 50 ] then echo "Number is greater than 50."if (( $1 % 2 == 0 )) then echo "and it is an even number." fi fi

输出量
如果我们将参数值输入为100,则输出将如下所示:
bash if语句

文章图片
结论在本主题中,我们讨论了如何在具有bash if语句的语句的顺序执行流程中使用条件分支。

    推荐阅读