将关联数组键与嵌入句点分配时出错

时间:2013-05-01 21:52:23

标签: arrays variable-assignment associative

我有一个简单的shell脚本,我试图将一个值赋给一个关联数组,其中键值有一个或多个“。”其价值中的字符。

#!/bin/bash

X="my.key"
Y="my.val"

ARRAY[$X]=$Y

当我运行此操作时,我收到以下错误消息。 my.key:语法错误:无效的算术运算符(错误标记为“.key”)

如何强制bash不像浮点值一样处理我的键?

提前致谢!

1 个答案:

答案 0 :(得分:3)

在bash 4.x中,默认情况下关联数组不启用,以便向后兼容3.x及更早版本(基本上,您可以在数组索引中使用裸字符串,它们将自动被视为变量引用)。必须在使用前显式声明关联数组以覆盖它:

declare -A arrayname

此外,在所有大写字母中命名脚本局部变量被认为是不好的风格。所有上限通常表示环境变量。