我有一个简单的 shell 脚本,其中我尝试将一个值分配给一个关联数组,其中键值具有一个或多个“.”。其值中的字符。
#!/bin/bash
X="my.key"
Y="my.val"
ARRAY[$X]=$Y
当我运行此程序时,我收到以下错误消息。 my.key:语法错误:算术运算符无效(错误标记为“.key”)
如何强制 bash 不将我的 key 视为浮点值?
提前致谢!
最佳答案
在 bash 4.x 中,默认情况下不会启用关联数组,以便向后兼容 3.x 及更早版本(基本上,您可以在数组索引中使用裸字符串,它们将自动被视为变量引用)。关联数组必须在使用之前显式声明才能覆盖它:
declare -A arrayname
此外,以全部大写形式命名脚本局部变量被认为是不好的风格。全部大写通常表示环境变量。
关于arrays - 分配带有嵌入句点的关联数组键时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16327124/