Menu
CoddyTech

while 循环

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

当你确切知道要遍历哪些项时,for 循环非常好用。但如果你想一直循环,直到某个条件发生变化,该怎么办?这时就可以使用 while 循环。

while 循环只要条件仍为 true,就会继续运行。基本结构如下:

#!/bin/bash
count=1
while [ $count -le 5 ]; do
    echo "Count: $count"
    count=$((count + 1))
done

这个脚本会打印 1 到 5 的数字。

循环会检查 count 是否小于或等于 5。如果条件为真,就会运行循环体,使用 $((...)) 进行算术运算来递增计数器,然后再次检查。

当 count 达到 6 时,条件变为 false,循环就会停止。

如果你事先不知道需要循环多少次,while 循环就很合适。例如,你可以一直请求输入,直到用户输入“quit”为止:

#!/bin/bash
input=""
while [ "$input" != "quit" ]; do
    read -p "Enter command (quit to exit): " input
    echo "You entered: $input"
done

使用 while 循环时要小心。如果条件一直不变为 false,循环就会一直运行。

始终确保循环中的某些内容最终会改变条件,例如递增计数器,或根据用户输入更新变量。

challenge icon

挑战

简单

创建一个名为 counter.sh 的 shell 脚本,使用 while 循环打印从 1 到 4 的数字。

你的脚本应:

  1. 以 shebang 行(#!/bin/bash)开头
  2. 创建一个名为 num 的变量,初始值为 1
  3. 使用 while 循环,只要 num 小于或等于 4 就继续循环
  4. 在循环中,按以下格式打印当前数字:Number: [num]
  5. 每次迭代后,使用 $((num + 1)) 将 num 加 1

让脚本可执行并运行它。输出应为:

Number: 1
Number: 2
Number: 3
Number: 4

提示:使用 -le 表示“小于或等于”比较。记得在循环中使用 num=$((num + 1)) 增加计数器,以避免无限循环。用 done 结束 while 循环。

亲手试试

终端
quiz icon自我测试

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

基础知识中的所有课

自己练习: Terminal 在线编辑器