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(小于或等于)。比较字符串时,使用 = 表示相等,使用 != 表示不相等。
记得始终在括号内加空格,并给变量加上引号,以避免空值导致错误。
挑战
简单创建一个名为 check_score.sh 的 shell 脚本,使用 if 语句判断测试分数。
你的脚本应该:
- 以 shebang 行(
#!/bin/bash)开头 - 创建一个名为
score、值为75的变量 - 使用 if 语句检查分数是否大于或等于 70
- 如果条件为真,打印:
You passed! - 如果条件为假,打印:
You failed.
让脚本可执行并运行它。由于分数是 75,输出应该是:
You passed!提示:记得使用
-ge表示“大于或等于”比较,在方括号内加上空格,并用fi结束 if 语句。这里没有文件编辑器,所以请直接在 shell 中使用 here-document 写入文件:输入
cat > check_score.sh << 'EOF',然后输入脚本的各行,最后单独输入一行EOF。
亲手试试
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Terminal 在线编辑器