📅  最后修改于: 2023-12-03 14:47:26.295000             🧑  作者: Mango
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[@]}
,并在脚本中使用 $@
来接收参数。通过将参数放入一个新的数组中,可以在脚本中方便地处理数组数据。