📅  最后修改于: 2023-12-03 15:13:37.069000             🧑  作者: Mango
循环是编程语言中的重要概念,它让我们可以重复执行一段代码,从而实现逻辑上的控制流。Bash 是一种常见的 shell 编程语言,它提供了多种循环结构,本文将介绍其中的 while 循环,并演示如何用这种循环结构执行某段代码 n 次。
Bash 的 while 循环结构基本语法如下:
while [ condition ]
do
# execute commands
done
其中,condition
是一个命令或者表达式,当其返回值为 0 时,循环就会结束。循环体中可以包含多个命令,每个命令都需要以换行符或者分号结束。
下面是一个简单的例子,输出数字 1 到 5:
#!/bin/bash
i=1
while [ $i -le 5 ]
do
echo $i
i=$((i+1))
done
输出结果如下:
1
2
3
4
5
现在,我们想要用 while 循环执行某段代码 n 次,该怎么实现呢?
首先,我们需要指定一个计数器变量,用来记录当前已经执行了几次循环。然后,在循环体中判断计数器变量是否达到了 n,如果已经达到,则退出循环,否则继续执行循环体中的代码,并将计数器变量加一。最后,我们把整个 while 循环结构包裹在一个函数中,方便在其他地方调用。
下面是示例代码:
#!/bin/bash
# 循环 n 次
function run_n_times {
n=$1
cmd=$2
i=0
while [ $i -lt $n ]
do
eval $cmd
i=$((i+1))
done
}
# 测试函数
run_n_times 3 "echo hello"
执行结果如下:
hello
hello
hello
在这个例子中,我们定义了一个名为 run_n_times
的函数,它接收两个参数:n,表示要执行的次数,和 cmd,表示要执行的命令。
函数中,我们首先定义了一个计数器变量 i,并通过 while 循环来执行 cmd n 次。在每次循环中,我们先将命令字符串转化成真正的命令,然后执行它,并将计数器变量加一。
最后,我们测试了一下 run_n_times 函数,使用它来执行 3 次 echo hello 命令。