考虑以下代码:
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
变量(参见这个问题)。