📜  for 循环 while 循环 shell 函数 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:30:50.388000             🧑  作者: Mango

For循环 while循环和shell函数

For循环

For循环是一种重复执行代码块的结构,允许我们为一个变量设置一个列表,并在每次循环中对其进行迭代,一般形式为:

for variable in list
do
    # execute code block
done

其中list是一系列值,如数字范围、文件名列表等。在循环内部,可以使用$variable来访问当前值。例如,下面的循环将列表中的数字相加,并输出计算结果:

sum=0
for num in 1 2 3 4 5
do
    sum=$((sum+num))
done
echo "The sum is: $sum"

输出:

The sum is: 15

除了使用列表外,我们还可以使用seq命令自动生成数字列表。例如,下面的脚本将计算1到10的和:

sum=0
for i in $(seq 1 10)
do
    sum=$((sum+i))
done
echo "The sum is: $sum"

输出:

The sum is: 55
While循环

While循环也是一种重复执行代码块的结构,但不像For循环需要事先定义好列表,而是在循环内部根据条件来决定是否继续执行。一般形式为:

while condition
do
    # execute code block
done

其中condition是一个命令或表达式,结果为true或false。在每次循环迭代时,都会检查该条件的结果,如果为true,则继续执行循环体,否则退出循环。例如,下面的脚本将输出1到10之间的所有偶数:

num=0
while [ $num -lt 10 ]
do
    num=$((num+1))
    if [ $((num%2)) -eq 0 ]
    then
        echo "$num is even"
    fi
done

输出:

2 is even
4 is even
6 is even
8 is even
10 is even
Shell函数

Shell函数就像在其他编程语言中定义的函数一样,允许我们将一些相关的代码块封装起来,以便在需要时重复调用。一般形式为:

function_name () {
    # execute code block
    return value
}

其中,function_name是函数的名称,可以自己定义。在函数内部,我们可以声明本地变量,并执行一系列命令,当完成所有操作后,可以选择是否返回一个值。例如,下面的函数将接受两个参数,并返回它们的和:

add () {
    local num1=$1
    local num2=$2
    local sum=$((num1+num2))
    echo $sum
}

我们可以通过调用该函数来获得结果,例如:

result=$(add 2 3)
echo "The result is $result"

输出:

The result is 5

以上是For循环,While循环和Shell函数的介绍。通过使用这些重复结构和函数,我们可以更有效地管理和组织我们的脚本。