📌  相关文章
📜  shell 脚本中的 for 循环迭代 - Shell-Bash (1)

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

Shell 脚本中的 for 循环

在 Shell 脚本中,for 循环是一种常用的迭代方法。通过 for 循环,我们可以在 Shell 脚本中执行相同的操作多次,而不需要手动地重复输入相同的命令。

下面是 for 循环的基本语法:

for 变量名 in [列表]
do
    命令
done

其中,[列表] 可以是以下之一:

  • 一个固定的字符串列表,如 "hello" "world"
  • 一个等差数列,如 {1..10}
  • 一个命令的输出结果,如 $(ls)

变量名会逐一取到列表中的每个元素,并在每次循环中执行一次命令。

以下是一个简单的示例,使用 for 循环来遍历数字列表,并输出每个数字的平方:

#!/bin/bash

for i in 1 2 3 4 5
do
    square=$(($i * $i))
    echo "$i 的平方是 $square"
done

输出:

1 的平方是 1
2 的平方是 4
3 的平方是 9
4 的平方是 16
5 的平方是 25

除了固定的列表外,我们还可以使用等差数列来生成列表。例如,要生成一个从 1 到 10 的数字列表,可以使用以下命令:

#!/bin/bash

for i in {1..10}
do
    echo $i
done

输出:

1
2
3
4
5
6
7
8
9
10

我们还可以使用命令的输出结果来生成列表。例如,下面的示例使用 for 循环来遍历当前目录下的所有文件,并输出它们的文件名:

#!/bin/bash

for file in $(ls)
do
    echo $file
done

输出类似于以下内容:

file1.txt
file2.txt
script.sh

此外,我们还可以使用特殊的 Shell 变量来控制循环的行为。例如,使用 $# 来获取命令行参数的数量,$@ 来获取所有命令行参数的值。例如,下面的示例将输出脚本的所有命令行参数:

#!/bin/bash

for arg in "$@"
do
    echo $arg
done

在实际的 Shell 脚本中,for 循环通常与其他条件判断、命令行操作等结合使用,以实现更为复杂的操作。