【发布时间】:2011-08-28 04:56:53
【问题描述】:
我在 bash (v 4) 中编写了一个使用关联数组的脚本。
它在我使用 4.1.5(1)-release 的本地机器上运行良好。
在生产机器上,使用 4.1.0(1)-release 声明 assoc 数组的以下行失败:
declare -A uniqjars
带有消息:
/script.sh: line 11: declare: -A: invalid option
declare: usage: declare [-afFirtx] [-p] [name[=value] ...]
我以为这是 bash 4 的一般功能?
在生产机器上的 bash 手册中,它使用-A 进行了讨论,所以我认为它应该工作。
关联数组是使用
declare -A <i>name</i>.
我可以通过打印出echo 'bash -version 的值来确认脚本使用的是正确版本的bash。
我做错了什么?
【问题讨论】:
-
我猜,由于某种原因我在机器上从 bash 3 升级到了 4,它正在从 bash3 中获取旧的 declare 函数?
-
可能是您使用了不正确的 shebang?