1
我知道这对于编写脚本的目的来说几乎太复杂了,但请耐心等待。定义散列表作为bash中的数组作为值
我知道你可以声明数组:
arr=(hello world)
echo ${arr[1]} # "world"
而且我知道,你可以在bash使用哈希映射:
declare -A map=([hello]=world [foo]=bar)
echo ${map[hello]} # "world"
但你可以有数组中值的哈希映射庆典?我已经尝试了几种语法,但通常我有一个哈希表,其中有空格分隔字符串列表作为与散列值
编辑:
举个例子:我想写一个适配器toolNew
为一个cmdline工具toolOld
。都只是打印出一些有关系统的信息。
toolOld
可以采用九种不同的参数a1
,a2
,a3
,b1
,...,或c3
,我希望能够简化。
I.e. toolNew
只需要三个不同的参数a
,b
或c
。
这样做将有一个功能
toolNew() {
newArgument="$1"
for argument in "${argumentMap[newArgument][@]}"; do
toolOld "$argument"
done
}
你能给你的意思的例子吗? – 123
编号数组在'bash'中不是一流的值。相反,shell提供了类似数组的语法,它基本上掩饰了类似命名变量的使用。 'ksh'确实允许嵌套数组,但是如果你需要这种类型的丰富的数据结构,shell以外的东西是更好的选择。 – chepner
Bash不支持多维数组(哈希被视为'关联数组')。 – blackghost