在 Linux 中,循环命令是处理大量数据或重复任务的常用方式。常见的循环命令包括 for、while、until 和 repeat(在某些 shell 中可用)。下面我将详细解释这些循环命令的用法和示例。
1. for 循环(最常用)
for 循环用于迭代变量,适用于遍历文件、目录、字符串等。
语法:
for variable in list; do
commands
done
示例:
# 遍历 1 到 5
for i in {1..5}; do
echo "当前数字是: $i"
done
# 遍历文件
for file in /path/to/dir/*; do
echo "处理文件: $file"
done
2. while 循环
while 循环在条件为真时重复执行命令。
语法:
while [ condition ]; do
commands
done
示例:
# 循环 1 到 5
i=1
while [ $i -le 5 ]; do
echo "当前数字是: $i"
let i++
done
3. until 循环
until 循环在条件为假时重复执行命令,适用于等待某个条件满足。
语法:
until [ condition ]; do
commands
done
示例:
# 等待直到文件存在
while [ ! -f /path/to/file ]; do
sleep 1
done
4. repeat 循环(仅在某些 shell 中可用)
repeat 是 bash 中的一个内置命令,用于重复执行命令一定次数。
语法:
repeat N command
示例:
repeat 3 echo "Hello"
5. for 循环中的变量处理
$(...):用于执行命令并获取其输出作为变量。$(()):用于执行算术运算。
示例:
num=$(echo 10 + 5)
echo "num = $num" # 输出: num = 15
6. for 循环中的 in 关键字
in 关键字可以用来遍历字符串、文件或数字。
示例:
# 遍历字符串
for i in a b c; do
echo "i = $i"
done
# 遍历文件
for file in /path/to/dir/*; do
echo "处理文件: $file"
done
7. for 循环中的 break 和 continue
break:跳出当前循环。continue:跳过当前迭代,继续下一轮。
示例:
for i in 1 2 3 4 5; do
if [ $i -eq 3 ]; then
break
fi
echo "i = $i"
done
输出:
i = 1
i = 2
i = 3
8. while 循环中的 exit 和 return
exit:退出脚本。return:退出函数。
示例:
i=1
while [ $i -le 5 ]; do
echo "i = $i"
if [ $i -eq 3 ]; then
exit
fi
let i++
done
总结
| 循环类型 | 用途 | 适用场景 |
|---|---|---|
for |
遍历变量、文件、字符串 | 通用,适合迭代 |
while |
条件判断,重复执行 | 适合需要条件控制的循环 |
until |
等待条件满足 | 适合需要等待的场景 |
repeat |
重复执行命令 | 适合需要重复执行的命令 |
如果你有特定的场景(如文件处理、数据统计、自动化任务等),我可以提供更具体的循环脚本或命令。欢迎继续提问!

