我有一个简单的shell脚本,我试图将一个值赋给一个关联数组,其中键值有一个或多个“。”其价值中的字符。
#!/bin/bash
X="my.key"
Y="my.val"
ARRAY[$X]=$Y
当我运行此操作时,我收到以下错误消息。 my.key:语法错误:无效的算术运算符(错误标记为“.key”)
如何强制bash不像浮点值一样处理我的键?
提前致谢!
答案 0 :(得分:3)
在bash 4.x中,默认情况下关联数组不启用,以便向后兼容3.x及更早版本(基本上,您可以在数组索引中使用裸字符串,它们将自动被视为变量引用)。必须在使用前显式声明关联数组以覆盖它:
declare -A arrayname
此外,在所有大写字母中命名脚本局部变量被认为是不好的风格。所有上限通常表示环境变量。