【问题标题】:ksh associate arraysksh 关联数组
【发布时间】:2011-05-22 15:32:47
【问题描述】:

我有一个需要使用关联数组的脚本。作为ksh 的新手,我无法找到ksh 支持关联数组的任何地方。当我尝试使用常规数组语法并分配时,我收到一个错误,即索引不能那么大。 ksh 是否支持关联数组?如果不是,那么替代解决方案是什么?

我需要做以下事情:

${array[$name]}=value

然后在代码中,读取一个值

${array[$name]}

每次运行此脚本时,我都会从数组中存储和读取大约 2000 个值。

不幸的是,由于脚本中包含的遗留模块的范围,我无法使用perl。感谢任何帮助、提示或技术。

【问题讨论】:

    标签: associative-array ksh


    【解决方案1】:

    ksh typeset 命令用于声明关联数组。

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

    【讨论】:

    • 嗨,我试过了,我得到以下错误: $ ./test.sh paramPassed: ./test.sh 0 ./test.sh[6]: typeset: 0403-010 A specified flag 对该命令无效。我在 AIX6.1 上运行
    • @Kiran:尝试将您的 shebang 更改为 ksh93 而不是 ksh
    • 谢谢丹尼斯,这行得通。但是,仅出于我的理解,ksh93 是否比默认的 ksh 更新? ksh93是93年发布的意思吗?谢谢
    • @Kiran - ksh 通常指的是ksh88,它是可用的第一年。 ksh93 指的是较新的(并且稍微不兼容的)版本的 korn shell。更多信息可以在维基百科上找到:en.wikipedia.org/wiki/Korn_shell 或在常见问题解答中的官方 korn shell 网站上:kornshell.com/doc/faq.html
    猜你喜欢
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    • 2013-03-08
    • 2013-05-25
    • 2018-02-26
    相关资源
    最近更新 更多