📅  最后修改于: 2023-12-03 15:09:34.868000             🧑  作者: Mango
在Shell脚本中,要将变量传递到数组中,您有两种不同的方法:一种是使用命令行参数,另一种是使用间接变量引用。这里,我们将分别介绍每种方法。
要将变量传递到数组中,您可以使用命令行参数 $1
,$2
,$3
,...。这些变量分别表示第一个、第二个、第三个参数,以此类推。
#!/bin/bash
# 将命令行参数保存到数组中
my_array=("$@")
# 显示数组大小
echo "数组大小: ${#my_array[@]}"
# 显示数组元素
echo "数组元素: ${my_array[@]}"
在上面的示例中,"$@"
表示所有命令行参数。在将这些参数保存到数组中时,我们使用了括号将它们括起来。
要运行此脚本并将参数传递到数组中,请在命令行中键入以下命令:
./script.sh hello world 123
输出应该如下所示:
数组大小: 3
数组元素: hello world 123
另一种将变量传递到数组中的方法是使用间接变量引用。这意味着您可以将变量名保存在另一个变量中,并使用该变量名访问原始变量的值。在这种情况下,数组的大小由 count
变量控制。
#!/bin/bash
# 将变量传递到数组中
my_array=()
count=0
while read line; do
my_array[$count]=$line
((count++))
done <<< "$1"
# 显示数组大小
echo "数组大小: $count"
# 显示数组元素
echo "数组元素: ${my_array[@]}"
在上面的示例中,我们将变量 $1
作为输入传递给 while
循环。每行都被读取到 $line
变量中,并在数组中相应地分配。
要运行此脚本并将变量传递到数组中,请在命令行中键入以下命令:
./script.sh "hello
world
123"
输出应该如下所示:
数组大小: 3
数组元素: hello world 123
这两种方法都提供了将变量传递到数组中的简单方法。选择哪种取决于您的具体要求和偏好。