📅  最后修改于: 2023-12-03 14:56:20.294000             🧑  作者: Mango
在 Bash 中,关联数组是一种非常有用的数据类型。因为它可以使用任意字符串作为索引,而不仅仅是数字。但是,如何在必要时快速填充关联数组呢?下面是一个用于填充关联数组的 Bash 函数。
# Fill an associative array
# $1: the name of the array to fill
# $2: the key to set
# $3: the value to set
# Example usage: fill_array my_array foo bar
fill_array() {
declare -g -A "$1" # Declare the global associative array variable
declare -g "$1[$2]=$3" # Set the key/value pair in the associative array
}
上面的函数有三个参数:要填充的关联数组的名称,要设置的键和要设置的值。这个函数使用 Bash 的 declare
命令来声明全局关联数组变量,并使用 $1[$2]=$3
将键/值对设置为数组元素。由于这个函数使用 declare
声明全局数组变量,因此可以在该脚本的任何地方使用该关联数组。
这是一个示例使用该函数的示例:
#!/bin/bash
# Function to fill an associative array
fill_array() {
...
}
# Declare an empty associative array
declare -g -A my_array
# Fill the associative array with some key/value pairs
fill_array my_array foo bar
fill_array my_array baz qux
# Print the contents of the associative array
for key in "${!my_array[@]}"; do
echo "Key: $key, Value: ${my_array[$key]}"
done
在上面的例子中,我们使用 fill_array
函数填充 my_array
关联数组,并使用 Bash 的 ${!my_array[@]}
语法打印了该数组的键和值。
这个函数是填充关联数组时一个非常便利的工具。通过使用这个函数,我们可以快速地设置关联数组的值,并在代码中的任何地方使用该数组。