Bash If 语句的4个示例(If then fi、If then else fi、If elif else fi、)
【摘要】 Bash 条件语句执行不同的计算或操作,具体取决于程序员指定的布尔条件是真还是假。根据某些条件是否为真,这些语句用于执行 shell 程序的不同部分。分支能力使 shell 脚本功能强大。
Bash 条件语句执行不同的计算或操作,具体取决于程序员指定的布尔条件是真还是假。根据某些条件是否为真,这些语句用于执行 shell 程序的不同部分。分支能力使 shell 脚本功能强大。
在 Bash 中,我们有以下条件语句:
- if..then..fi 语句(简单如果)
- if..then..else..fi 语句 (If-Else)
- if..elif..else..fi 语句(Else If 阶梯)
- 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)