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,循环就会一直运行。
始终确保循环中的某些内容最终会改变条件,例如递增计数器,或根据用户输入更新变量。
挑战
简单创建一个名为 counter.sh 的 shell 脚本,使用 while 循环打印从 1 到 4 的数字。
你的脚本应:
- 以 shebang 行(
#!/bin/bash)开头 - 创建一个名为
num的变量,初始值为1 - 使用 while 循环,只要
num小于或等于 4 就继续循环 - 在循环中,按以下格式打印当前数字:
Number: [num] - 每次迭代后,使用
$((num + 1))将num加 1
让脚本可执行并运行它。输出应为:
Number: 1
Number: 2
Number: 3
Number: 4提示:使用
-le表示“小于或等于”比较。记得在循环中使用num=$((num + 1))增加计数器,以避免无限循环。用done结束 while 循环。
亲手试试
这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Terminal 在线编辑器