在关联数组中,同时分配索引和值

在关联数组中,同时分配索引和值

在 bash 脚本中我发现了以下内容,但尽管它有效,但我无法理解它的逻辑

REMOTESNAPS+=(["$FS"]=" $SNAP")

上述语句REMOTESNAP通过定义$FS必须使用哪个索引“ ”以及向$SNAP其中添加第二个元素“ ”来向关联数组中添加一个元素。

我找不到这种构建关联数组的智能方法的解释,也找不到 bash 手册中对此进行解释或推断的要点。

有人可以扩展这个主题吗?我将不胜感激。

答案1

在“参数”部分中man bash,请参阅

在赋值语句为 shell 变量或数组索引赋值的情况下,可以使用 += 运算符来追加或添加变量的先前值。当将 += 应用于已设置整数属性的变量时,值将作为算术表达式进行求值,并添加到变量的当前值中,该值也会被求值。当使用复合赋值将 += 应用于数组变量时(请参阅下面的数组),变量的值不会被取消设置(使用 = 时会取消设置),并且新值将从大于数组最大索引(对于索引数组)的一个位置开始追加到数组中,或者作为关联数组中的附加键值对添加。

答案2

只是一个链接,我在其中找到了 man bash 中解释的示例。搜索“关联数组的单独质量设置。命名索引(此处:S1 和 S2)是字符串。”

相关内容