Bash教程

Bash If

Bash If

在本主题中,我们将了解如何在 Bash 脚本中使用 if 语句来完成我们的自动化任务。
Bash if 语句是有益的。它们用于在语句执行的顺序流中执行条件任务。 If 语句通常允许我们在 Bash 脚本中做出决定。它们帮助我们根据我们可能设置的条件决定是否运行一段代码。

基本 if 语句

基本 if 语句命令如果特定条件为真,则仅执行给定的一组操作。如果它不正确,则不要执行这些操作。 If 语句基于以下格式:

语法

if [ expression ];
then
statements
fi
then 和 fi 之间的语句(如果向后)只有在表达式(方括号之间)为真时才会执行。
注意: 注意第一行使用的空格和第一行末尾的分号;两者都是必须使用的。 If 条件语句fi 结尾。 对于使用 AND 运算符的多个条件:
if [ expression_1 ] && [ expression_2 ];
then
statements
fi
将多个条件与 OR 运算符一起使用:
if [ expression_1 ] || [ expression_2 ];
then
statements
fi
对于带有 AND & OR 运算符的复合表达式,我们可以使用以下语法:
if [ expression_1 && expression_2 || expression_3 ];
then
statements
fi
以下是一些演示 if 语句用法的示例:

示例 1

在此示例中,用户输入任意数字并检查如果该值大于 125、
#!/bin/bash
read-p " Enter number : " number
if [ $number-gt 125 ]
then
echo "Value is greater than 125"
fi
输出
如果我们输入数字 159,那么输出将如下所示:
Bash If Statement

示例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 Statement

示例 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 Statement

示例 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 Statement

示例 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 Statement

示例 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 Statement

Bash 脚本中 If 语句的选项

If 语句包含执行特定任务的许多选项。这些选项可用于文件操作、字符串操作等。以下是一些最常用的选项:
-
选项(运算符) 说明
! 表达式 检查 EXPRESSION 是否为假。
-n 字符串 检查STRING的长度是否大于零。
-z 字符串 检查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是否存在并且是一个目录。
-e 文件 检查文件是否存在。
-r 文件 检查FILE是否存在,是否有读取权限。
-s 文件 检查FILE是否存在且其大小大于零(即不为空)。
-w 文件 检查FILE是否存在,是否有写权限。
x 文件 检查FILE是否存在并授予执行权限。

Nested If

您可以根据需要在 bash 脚本中应用尽可能多的"if 语句"。也可以在另一个"if 语句"中使用 if 语句。它被称为嵌套 If 语句。

示例

在这个示例中,我们将发现"如果给定的数字大于 50 并且它是偶数number" 使用嵌套的 if 表达式。
#!/bin/bash
#Nested if statement
if [ $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 Statement

结论

在本主题中,我们讨论了如何在顺序中使用条件分支使用 bash if 语句执行语句的流程。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4