分配带有嵌入式句点的关联数组键时出错

Rog*_*ler 5 arrays associative variable-assignment

我有一个简单的Shell脚本,其中我试图为键值具有一个或多个“”的关联数组分配值。其值中的字符。

#!/bin/bash

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

ARRAY[$X]=$Y
Run Code Online (Sandbox Code Playgroud)

运行此命令时,出现以下错误消息。my.key:语法错误:无效的算术运算符(错误标记为“ .key”)

如何强制bash不能将我的密钥视为浮点值?

提前致谢!

mic*_*ica 6

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

declare -A arrayname
Run Code Online (Sandbox Code Playgroud)

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