1

这适用于 ksh93,我怎样才能为 ksh88 制作类似的代码?

$ typeset -A age
$ age["bob"]=42
$ age["alice"]=31
$ print ${age[bob]}
42
4

2 回答 2

1

简短的回答:你不能,ksh88 不做关联数组。

更长的答案:这取决于您要做什么。以下解决方法应该有效,但可能不适合您的方案:

integer bob=0
integer alice=1
age[bob]=42
age[alice]=31

你可以破解不实现 assoc 的 shell。数组(例如使用 eval),但它永远不会漂亮或快速。

于 2013-08-14T16:12:36.150 回答
1

实际上,ksh88 不支持关联数组。

使用 ksh88 作为 awk 脚本的包装器:

awk 'BEGIN {
  age["bob"]=42
  age["alice"]=31
  print age["bob"]
}'
42

仍然托管 ksh88 而没有 ksh93 的系统可能具有支持映射的其他语言。

于 2013-08-15T20:31:22.327 回答