条件语句(if、else、elif)
使用“if”、“else”和“elif”语句在脚本中实现决策逻辑,让行为更加动态。
条件语句(if、else、elif) 是 CoddyKit 上的免费 DevOps Bootcamp 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 DevOps Bootcamp 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 DevOps Bootcamp 课程共包含 4 节课。
条件语句为何重要
在 Bash 脚本编程中,有时需要让脚本做出决策。想象一下,一个脚本根据用户输入或某个文件是否存在来执行不同的操作。
这正是条件语句的作用!它们允许脚本仅在满足特定条件时执行相应的代码块。
基本的 `if` 语句
最简单的条件结构是if语句。它会检查一个条件,如果条件为真,就执行一组命令。
语法如下:
if [ condition ]then# commands if condition is truefi(标记if代码块的结束)
您的第一个 `if` 脚本
让我们看看基本的if语句如何运行。此脚本会检查一个数字是否大于 5。
请尝试修改NUMBER的值并运行脚本!
#!/bin/bash
NUMBER=10
if [ $NUMBER -gt 5 ]
then
echo "The number $NUMBER is greater than 5."
fi
echo "Script finished."构造测试条件
[ condition ]部分非常关键。它实际上是一个名为test的命令,或者是它的别名[。
您还可以使用[[ condition ]],这是更高级的版本,提供更好的语法,并能避免单词拆分问题。对于初学者来说,[ ]更为常用。
- 始终在方括号和运算符两侧加空格。
[ ]中的变量通常应加引号(例如"$VARIABLE"),以避免空值或包含多个单词的值导致错误。
比较数字
在 Bash 中比较数字时,需要使用特定的运算符:
-eq:等于-ne:不等于-gt:大于-ge:大于或等于-lt:小于-le:小于或等于
这些运算符要在[ ]或[[ ]]中使用。
比较字符串
比较文本(字符串)时,需要使用不同的运算符:
==或=:等于(在[[ ]]中优先使用==)!=:不等于-z "$STRING":当字符串为空(长度为零)时为真-n "$STRING":当字符串不为空(长度不为零)时为真
请记住为字符串变量加引号!
'if-else' 语句
如果条件为真,您希望运行一个代码块;如果条件为假,则运行另一个不同的代码块,该怎么办呢?
这正是if-else的用途!它为脚本提供了另一条执行路径。
语法如下:
if [ condition ]then# commands if trueelse# commands if falsefi
'if-else' 实战
此脚本会要求您输入一个数字,并告诉您该数字是否为正数。它使用了if-else结构。
请使用不同的输入运行几次(例如 5、-3、0)。
#!/bin/bash
read -p "Enter a number: " NUM
if [ "$NUM" -gt 0 ]
then
echo "$NUM is a positive number."
else
echo "$NUM is not a positive number (it's zero or negative)."
fi使用 'elif' 处理多种选择
当可能的结果超过两个时,可以使用elif(“else if”的缩写)。这样就能按顺序检查多个条件。
语法如下:
if [ condition1 ]then# commands if condition1 is trueelif [ condition2 ]then# commands if condition1 is false AND condition2 is trueelse# commands if all conditions are falsefi
高级决策逻辑
让我们使用if、elif和else创建一个根据用户年龄进行分类的脚本。这样可以处理多种情况。
请注意,[[ ]]中使用&&来组合条件(逻辑 AND)。
#!/bin/bash
read -p "Enter your age: " AGE
if [[ $AGE -lt 13 ]]
then
echo "You are a child."
elif [[ $AGE -ge 13 && $AGE -lt 18 ]]
then
echo "You are a teenager."
elif [[ $AGE -ge 18 && $AGE -lt 65 ]]
then
echo "You are an adult."
else
echo "You are a senior citizen."
fi条件检查
请考虑以下 Bash 脚本:
#!/bin/bash
SCORE=85
if [ $SCORE -lt 60 ]
then
echo "Fail"
elif [ $SCORE -lt 80 ]
then
echo "Pass"
else
echo "Distinction"
fi条件语句总结
做得很好!您已经学会了如何使用条件语句让 Bash 脚本变得更加智能。
- 如果条件为真,
if语句就会执行代码。 - 如果
if条件为假,else会提供另一条执行路径。 elif允许您按顺序检查多个条件。- 请记得使用适当的运算符(数字使用
-eq,字符串使用==),并始终使用fi关闭if代码块。
这些工具是创建动态交互式脚本的基础!
常见问题解答
「条件语句(if、else、elif)」课时是免费的吗?
是的 — 「条件语句(if、else、elif)」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 DevOps Bootcamp 课程的其余内容,请升级到 CoddyKit PRO。 DevOps Bootcamp 课程共包含 4 节课。
「条件语句(if、else、elif)」这节课中我会学到什么?
使用“if”、“else”和“elif”语句在脚本中实现决策逻辑,让行为更加动态。 你通过在浏览器中直接运行的动手代码来练习 DevOps Bootcamp,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 DevOps Bootcamp 需要有经验吗?
无需任何先前经验。CoddyKit 上的 DevOps Bootcamp 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「条件语句(if、else、elif)」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 DevOps Bootcamp 课中编写并运行代码吗?
能。每节 DevOps Bootcamp 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 第一个 Bash 脚本与 Shebang
- 变量与用户输入
- 条件语句(if、else、elif)
- 在 Bash 中使用数组