Bash If 语句的4个示例(If then fi、If then else fi、If elif else fi、)

举报
Tiamo_T 发表于 2022/02/23 13:01:55 2022/02/23
【摘要】 Bash 条件语句执行不同的计算或操作,具体取决于程序员指定的布尔条件是真还是假。根据某些条件是否为真,这些语句用于执行 shell 程序的不同部分。分支能力使 shell 脚本功能强大。

Bash 条件语句执行不同的计算或操作,具体取决于程序员指定的布尔条件是真还是假。根据某些条件是否为真,这些语句用于执行 shell 程序的不同部分。分支能力使 shell 脚本功能强大。

在 Bash 中,我们有以下条件语句:

  1. if..then..fi 语句(简单如果)
  2. if..then..else..fi 语句 (If-Else)
  3. if..elif..else..fi 语句(Else If 阶梯)
  4. if..then..else..if..then..fi..fi..(嵌套 if)

这些类似于我们之前讨论的awk if 语句。

1. Bash If..then..fi 语句

if [ conditional expression ]
then
	statement1
	statement2
	.
fi

此 if 语句也称为简单 if 语句。如果给定的条件表达式为真,则进入并执行关键字“then”和“fi”之间的语句。如果给定的表达式返回零,则执行后续语句列表。

如果然后 fi 示例:

#!/bin/bash
count=100
if [ $count -eq 100 ]
then
  echo "Count is 100"
fi

2. Bash If..then..else..fi 语句

If [ conditional expression ]
then
	statement1
	statement2
	.
else
	statement3
	statement4
	.
fi

如果条件表达式为真,则执行语句1和2。如果条件表达式返回零,则跳转到else部分,并执行语句3和4。执行完if/else部分后,继续执行后续语句。

if then else fi 示例:


#!/bin/bash
count=99
if [ $count -eq 100 ]
then
  echo "Count is 100"
else
  echo "Count is not 100"
fi

注意:本文是正在进行的Bash 教程系列的一部分。

3. Bash If..elif..else..fi

If [ conditional expression1 ]
then
	statement1
	statement2
	.
elif [ conditional expression2 ]
then
	statement3
	statement4
	.
.
.
else
	statement5
fi

如果你想选择许多代码块之一来执行,你可以使用这个 if .. elif.. if 。它检查表达式 1,如果为真则执行语句 1,2。如果表达式1 为假,则检查表达式2,如果所有的表达式都为假,则进入else 块并执行else 块中的语句。

if then elif then else fi 示例:

#!/bin/bash
count=99
if [ $count -eq 100 ]
then
  echo "Count is 100"
elif [ $count -gt 100 ]
then
  echo "Count is greater than 100"
else
  echo "Count is less than 100"
fi

4. Bash If..then..else..if..then..fi..fi..

If [ conditional expression1 ]
then
	statement1
	statement2
	.
else
	if [ conditional expression2 ]
	then
		statement3
		.
	fi
fi

if 语句和 else 语句可以嵌套在 bash 中。关键字“fi”表示内部 if 语句的结束,所有 if 语句都应以关键字“fi”结束。

上面提到的“if then elif then else fi”示例可以转换为嵌套的if,如下所示。

#!/bin/bash
count=99
if [ $count -eq 100 ]
then
  echo "Count is 100"
else
  if [ $count -gt 100 ]
  then
    echo "Count is greater than 100"
  else
  echo "Count is less than 100"
  fi
fi
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。