Fish Shell:
使用关联数组
如何操作:
Fish本身并不像Bash 4+那样原生支持关联数组,但您可以使用列表和字符串操作的组合来实现类似的功能。以下是模拟它们的方式:
首先,分别设置“关联数组”元素:
set food_color_apple "red"
set food_color_banana "yellow"
要访问一个元素,直接引用它即可:
echo $food_color_apple
# 输出:red
如果您需要遍历它们,使用for循环并考虑命名约定:
for food in apple banana
echo $food_color_$food
end
# 输出:
# red
# yellow
对于那些缺少Bash的${!array[@]}
来获取所有键的人,您可以在一个单独的列表中存储键:
set food_keys apple banana
for key in $food_keys
echo $key '是' $food_color_$key
end
# 输出:
# apple 是 red
# banana 是 yellow
深入探讨
真正的关联数组,如其他脚本语言中的,尚未成为Fish方法的一部分。所展示的解决方法利用了Fish的字符串操作和列表功能来创建一个伪关联数组结构。虽然它有效,但并不如内置的关联数组支持那样干净或防错。其他shell,如Bash和Zsh,提供了内置的关联数组功能,这导致更直接、可读的代码。然而,Fish的设计理念旨在追求简洁性和用户友好性,可能以牺牲这类功能为代价。这种解决方法满足了大多数需求,但请关注Fish Shell的发展——其开发人员根据社区反馈积极改进和增加功能。