【发布时间】:2017-03-24 19:47:04
【问题描述】:
我将我的用例剥离为这 3 行(加上输出):
A=(foo bar)
A=$(echo "spam egg")
echo ${A[@]}
spam egg bar
它创建一个包含两个手写元素的数组。然后一段时间后,我想用命令行工具的输出替换我的数组(例如ls *.vhd)。 Bash 不会替换数组,而是仅替换第一个元素,因此 bar 在末尾被“附加”。
如果我使用另一个手写数组,则无法重现此行为。
A=(foo bar)
A=(spam egg)
echo ${A[@]}
spam egg
所以我怀疑它与使用$() 有关。我该如何解决我的问题?
【问题讨论】:
-
A=$(echo "spam egg")等价于A[0]=$(echo "spam egg")。