bash - 关联数组 : error "declare: -A: invalid option"

标签 bash associative-array

我在 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 功能?

在 man for bash on the production machine 它讨论了使用 -A所以我认为它应该有效。

Associative arrays are created using declare -A <i>name</i>.

我可以通过打印出 echo 'bash -version 的值来确认脚本使用的是正确版本的 bash .

我做错了什么?

最佳答案

确保在您的 shell 脚本顶部作为解释器调用的 bash 版本(#!/bin/bash 或其他)也是版本 4。如果您这样做:

bash --version

它给你 v4,做一个 which bash 来检查它的位置。

关于bash - 关联数组 : error "declare: -A: invalid option",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047648/

相关文章:

linux - 如果没有传递参数,如何显示帮助文本

bash - 如何提示输入 MFA key 以生成和使用 AWS CLI 访问凭证?

bash - bash shell 脚本中大于 255 的数字

php - 我将哪种 fetch_style 与 PDO 一起使用,以便我可以使用 PHP extract() 函数?

PHP "Warning: usort() [function.usort]: Invalid comparison function"排序

javascript - 使用 jQuery.post() 的 for 循环中的关联数组导致仅存储最后一个条目

multithreading - 编写一个 bash 脚本来重启一个守护进程

bash - 使用键值连接两个 csv 文件

javascript - javascript中的关联数组使用对/元组作为多值键/索引

PHP array_merge() 仅优先使用第一个数组和唯一值?