📜  shell 传递数组作为参数 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:47:26.295000             🧑  作者: Mango

Shell 传递数组作为参数

Shell 脚本可以通过命令行参数接收外部传入的值,在传递参数时如果需要传递数组,有一些特殊的注意事项。

传递数组

在 Shell 脚本中,数组可以通过一对圆括号 ( ) 或者一对花括号 { } 定义。下面是一个示例数组的定义:

numbers=(1 2 3 4 5)

为了将数组作为参数传递给脚本,可以在调用脚本时通过空格分隔数组元素,并使用引号括起来。例如,要将上面的数组传递给脚本 script.sh,可以使用以下方式:

./script.sh "${numbers[@]}"

可以看到,使用 ${numbers[@]} 可以将数组的所有元素传递给脚本。

在脚本中获取数组

在接收到传递的数组参数后,脚本中可以使用 $@ 来获取传递的所有参数。然后,可以通过将参数放入一个新的数组中进行处理。

下面是一个示例脚本 script.sh,演示了如何获取传递的数组参数:

#!/bin/bash

# 将传递的参数放入一个新的数组中
array=("$@")

# 遍历数组,并打印每个元素
for element in "${array[@]}"
do
    echo "$element"
done

运行脚本,并传递数组参数:

./script.sh "${numbers[@]}"

脚本将会打印数组中的每个元素。

结论

传递数组作为参数时,在调用脚本时使用引号括起来的 ${array[@]},并在脚本中使用 $@ 来接收参数。通过将参数放入一个新的数组中,可以在脚本中方便地处理数组数据。