📜  将变量传递到数组 - Shell-Bash (1)

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

将变量传递到数组 - Shell-Bash

在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

这两种方法都提供了将变量传递到数组中的简单方法。选择哪种取决于您的具体要求和偏好。