Menu
CoddyTech

if 语句

本课属于 Coddy Terminal 学习旅程的“基础知识”单元。第 70 课,共 82 课。

到目前为止,你的脚本会从上到下运行每条命令,不会做任何判断。但如果你想让脚本根据特定条件执行不同操作,该怎么办?这时就要用到 if 语句。

if 语句可以让你的脚本做出判断。它会检查条件是否为 true,如果是,就运行一段代码。基本结构如下:

#!/bin/bash
age=18
if [ $age -ge 18 ]; then
    echo "You are an adult"
fi

条件放在方括号内,前后都要留空格。then 关键字标记要运行的代码的起始位置,fi(if 倒着拼)则结束这条语句。

你也可以使用 else 处理条件为 false 的情况:

#!/bin/bash
age=15
if [ $age -ge 18 ]; then
    echo "You are an adult"
else
    echo "You are a minor"
fi

常见的数字比较运算符包括 -eq(等于)、-ne(不等于)、-gt(大于)、-lt(小于)、-ge(大于或等于)和 -le(小于或等于)。比较字符串时,使用 = 表示相等,使用 != 表示不相等。

记得始终在括号内加空格,并给变量加上引号,以避免空值导致错误。

challenge icon

挑战

简单

创建一个名为 check_score.sh 的 shell 脚本,使用 if 语句判断测试分数。

你的脚本应该:

  1. 以 shebang 行(#!/bin/bash)开头
  2. 创建一个名为 score、值为 75 的变量
  3. 使用 if 语句检查分数是否大于或等于 70
  4. 如果条件为真,打印:You passed!
  5. 如果条件为假,打印:You failed.

让脚本可执行并运行它。由于分数是 75,输出应该是:

You passed!

提示:记得使用 -ge 表示“大于或等于”比较,在方括号内加上空格,并用 fi 结束 if 语句。

这里没有文件编辑器,所以请直接在 shell 中使用 here-document 写入文件:输入 cat > check_score.sh << 'EOF',然后输入脚本的各行,最后单独输入一行 EOF。

亲手试试

终端
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Terminal 在线编辑器