Bash:
使用关联数组
如何操作:
首先,在Bash中声明一个关联数组:
declare -A my_array
然后,你可以开始用字符串作为键填充它的值:
my_array["name"]="Linux Journal"
my_array["topic"]="编程"
要访问一个元素,使用它的键:
echo ${my_array["name"]} # 输出:Linux Journal
遍历键和值也很直接:
for key in "${!my_array[@]}"; do
echo "$key: ${my_array[$key]}"
done
样本输出可能看起来像这样:
name: Linux Journal
topic: 编程
要添加或修改元素,只需将一个值分配给一个键,类似于初始填充:
my_array["readers"]="你"
若要移除一个元素,使用unset
:
unset my_array["topic"]
深入探讨
关联数组是在 Bash 版本 4.0 引入的,使它们成为该语言相对较新的添加。在引入它们之前,处理非整数索引数组是笨拙的,经常需要变通方法或外部工具,比如awk
或sed
。
在底层,Bash 使用哈希表实现关联数组。这种实现允许高效的键查找,它基本上不论数组大小如何都保持相当恒定,这是脚本执行性能中的一个关键特性。
虽然 Bash 中的关联数组为 shell 脚本带来了许多力量和灵活性,但它们也有自己的一套局限性,比如与 Python 或 JavaScript 等高级语言中的数组相比,操作起来有些笨拙。对于复杂的数据操作任务,考虑使用更适合这项工作的外部工具或语言仍然是值得的。
然而,对于许多典型的脚本任务,关联数组在 Bash 程序员的工具箱中提供了一个有价值的工具,通过允许使用有意义的字符串键而不是数字索引,使脚本更可读和可维护。