考虑以下代码:
a=(1 2 3)
a='seven'
export a
declare -p a
输出(来自declare)是:
declare -ax a='([0]="seven" [1]="2" [2]="3")'
a数组也是如此。问题:
- 如何更改第二行,
a不再是一个数组,而是一个带有值的简单变量seven?我正在寻找一个单线,没有unset等。 - 将变量分配给数组只会替换第一个元素,而不是整个数组。此行为在哪里指定?
注意:Bash v. 3.2.48 (OS X)。
(我今天已经回答了这个问题,这让我想到了这个问题,我正在寻找一个更清洁的解决方案)。
编辑:我正在寻找:
a=(1 2 3)
/* One line here please :) */
unset a
a='seven'
export a
declare -p a
但没有做明确unset的 . 在特殊情况下,a它实际上是一个PATH变量(参见这个问题)。