在 bash 脚本中我发现了以下内容,但尽管它有效,但我无法理解它的逻辑
REMOTESNAPS+=(["$FS"]=" $SNAP")
上述语句REMOTESNAP
通过定义$FS
必须使用哪个索引“ ”以及向$SNAP
其中添加第二个元素“ ”来向关联数组中添加一个元素。
我找不到这种构建关联数组的智能方法的解释,也找不到 bash 手册中对此进行解释或推断的要点。
有人可以扩展这个主题吗?我将不胜感激。
答案1
在“参数”部分中man bash
,请参阅
在赋值语句为 shell 变量或数组索引赋值的情况下,可以使用 += 运算符来追加或添加变量的先前值。当将 += 应用于已设置整数属性的变量时,值将作为算术表达式进行求值,并添加到变量的当前值中,该值也会被求值。当使用复合赋值将 += 应用于数组变量时(请参阅下面的数组),变量的值不会被取消设置(使用 = 时会取消设置),并且新值将从大于数组最大索引(对于索引数组)的一个位置开始追加到数组中,或者作为关联数组中的附加键值对添加。
答案2
只是一个链接,我在其中找到了 man bash 中解释的示例。搜索“关联数组的单独质量设置。命名索引(此处:S1 和 S2)是字符串。”