如何在 Bash 脚本中使用条件语句

在 bash 脚本,条件语句有助于检查特定条件是真还是假。 当条件为真时,shell 脚本运行或执行脚本规定的一段代码。 否则,脚本会跳过执行代码并跳转到下一个条件语句。

在 bash 脚本,条件语句包括 如果, 如果别的, if-elif-else 和嵌套 if 陈述。 在本指南中,我们将探讨如何在脚本执行中使用这些条件语句。

if 语句

在其最简单的形式中,’if’ 语句采用以下语法。

if [[ conditional_statement ]]

then

 command 

fi

条件 if 语句以 如果 关键词。 这之后是一个条件语句,然后是 然后 如果条件语句成立,则在要执行的命令之前的关键字。

所以,如果 条件语句 成立,那么 命令 被执行。 如果计算结果为 False,则什么也不会发生,并且 命令 被完全忽略并且脚本退出。

让我们采取一个 example 一个 bash 检查提供的分数是否大于 80 的脚本。

$ vim check_score.sh

复制并粘贴脚本。

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

fi

仔细注意缩进。 使用分配执行权限 修改 命令如下:

$ chmod +x check_score.sh

然后运行脚本。

$ ./check_score.sh

如果输入大于 80 的值,则条件语句成立,并且回显消息将打印到标准输出

但是,如果为分数提供的值小于 80 – 条件语句的计算结果为 false 并且没有任何反应。 脚本简单地退出。

if-else 语句

在前面的 shell 脚本中,在条件语句评估为 True 之后只执行了一个命令。 当条件评估为 False 时,没有打印任何内容并且脚本刚刚退出。 这 如果别的 如果条件评估为假,语句可以帮助我们执行命令。 这 别的 如果条件返回 False,则语句后跟一个命令或语句。

if [[ conditional_statement ]]

then

 command 

else

 command

fi

让我们修改之前的 shell 脚本并添加一个 别的 陈述

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -gt 80 ]]

then

 echo "You have passed the exam!"

else

 echo "You have failed the exam, please try again"

fi

这里,shell 脚本执行后面的代码块 别的 仅当第一个条件评估为假时才声明 – 也就是说,如果提供的分数小于 80。

在第一种情况下,提供的分数是 90,大于 80,因此脚本中的第一条语句被执行并且脚本退出。

但是,在第二种情况下,提供了 70,并且由于该值小于 80,因此脚本会跳过第一条语句,因为它的计算结果为 false,然后继续执行第二条语句。 别的 陈述。

if-elif-else 语句

到目前为止,我们已经检查了一个计算结果为 True 或 False 的条件。 这 小精灵 (else -if ) 语句用于有多个具有不同结果的条件语句的情况。 如果一个条件评估为 False,它会继续检查其他条件是否为 True。 这是 if-elif-else 语句的简单语法。

if [[ conditional_statement_1 ]]

then

 command_1 

elif [[ conditional_statement_2 ]]

then

 command_2

else

 command_3

fi

考虑下面的脚本

#!/bin/bash

echo -n "Please Enter a score: "

read score

if [[ $score -ge 90 ]]

then

 echo "Excellent!"

elif [[ $score -ge 70 ]]

then

 echo "Congratulations! Job well done!"

elif [[ $score -ge 50 ]]

then

 echo "Fairly done. There's more room for improvement!"

else

 echo "Poorly done"

fi

在这个 example,如果分数大于或等于 90,则打印消息 优秀的! 但是,如果分数小于 90 但大于或等于 70,则打印 恭喜! 做得好!.
如果分数小于 70,但大于或等于 50,则打印出消息 做得还不错。 还有更大的改进空间!

最后,如果分数低于 50,则打印出来 做得不好。

嵌套 if 语句

嵌套的 if 语句包含另一个 if 语句中的 if 语句。 当一个条件成立时,脚本继续检查下一个条件。 在下面的演示中,我们将取 3 个数值的输入值,并检查其中哪个是最大的。

#!/bin/bash

read -p "Please enter the value of j:" j

read -p "Please enter the value of k:" k

read -p "Please enter the value of l:" l

if [ $j -gt $k ]

then

 if [ $j -gt $l ]

 then

 echo "j is greatest"

 else

 echo "l is greatest"

 fi

else

 if [ $k -gt $l ]

 then

 echo "k is greatest"

 else

 echo "l is greatest"

 fi

fi

概括

这是对条件语句的高级概述 bash 脚本。 如您所见,条件语句用于根据设置的条件表达式确定脚本的结果。 希望您现在有了条件语句的基本基础。