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