这适用于 ksh93,我怎样才能为 ksh88 制作类似的代码?
$ typeset -A age
$ age["bob"]=42
$ age["alice"]=31
$ print ${age[bob]}
42
这适用于 ksh93,我怎样才能为 ksh88 制作类似的代码?
$ typeset -A age
$ age["bob"]=42
$ age["alice"]=31
$ print ${age[bob]}
42
简短的回答:你不能,ksh88 不做关联数组。
更长的答案:这取决于您要做什么。以下解决方法应该有效,但可能不适合您的方案:
integer bob=0
integer alice=1
age[bob]=42
age[alice]=31
你可以破解不实现 assoc 的 shell。数组(例如使用 eval),但它永远不会漂亮或快速。
实际上,ksh88 不支持关联数组。
使用 ksh88 作为 awk 脚本的包装器:
awk 'BEGIN {
age["bob"]=42
age["alice"]=31
print age["bob"]
}'
42
仍然托管 ksh88 而没有 ksh93 的系统可能具有支持映射的其他语言。