0Pricing
Linux Command Line & Bash Scripting Mastery · 课时

条件语句(if、else、elif)

使用“if”、“else”和“elif”语句在脚本中实现决策逻辑,让行为更加动态。

条件语句(if、else、elif) 是 CoddyKit 上的免费 Linux Command Line & Bash Scripting Mastery 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Linux Command Line & Bash Scripting Mastery 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Linux Command Line & Bash Scripting Mastery 课程共包含 4 节课。

条件语句为何重要

在 Bash 脚本编程中,有时需要让脚本做出决策。想象一下,一个脚本根据用户输入或某个文件是否存在来执行不同的操作。

这正是条件语句的作用!它们允许脚本仅在满足特定条件时执行相应的代码块。

基本的 `if` 语句

最简单的条件结构是if语句。它会检查一个条件,如果条件为真,就执行一组命令。

语法如下:

  • if [ condition ]
  • then
  • # commands if condition is true
  • fi(标记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 true
  • else
  • # commands if false
  • fi

'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 true
  • elif [ condition2 ]
  • then
  • # commands if condition1 is false AND condition2 is true
  • else
  • # commands if all conditions are false
  • fi

高级决策逻辑

让我们使用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 导师)并解锁 Linux Command Line & Bash Scripting Mastery 课程的其余内容,请升级到 CoddyKit PRO。 Linux Command Line & Bash Scripting Mastery 课程共包含 4 节课。

「条件语句(if、else、elif)」这节课中我会学到什么?

使用“if”、“else”和“elif”语句在脚本中实现决策逻辑,让行为更加动态。 你通过在浏览器中直接运行的动手代码来练习 Linux Command Line & Bash Scripting Mastery,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Linux Command Line & Bash Scripting Mastery 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Linux Command Line & Bash Scripting Mastery 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。

「条件语句(if、else、elif)」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Linux Command Line & Bash Scripting Mastery 课中编写并运行代码吗?

能。每节 Linux Command Line & Bash Scripting Mastery 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 第一个 Bash 脚本与 Shebang
  2. 变量与用户输入
  3. 条件语句(if、else、elif)
  4. 在 Bash 中使用数组
← 返回 Linux Command Line & Bash Scripting Mastery