Bash:将命令输出添加到现有数组

Bash:将命令输出添加到现有数组,bash,Bash,我有3个元素的数组,我在for循环中检索这些元素并对其执行一些命令 我想将输出存储在单个数组中。我该怎么做 数组1包含 [ /home/users/abc /home/users/pqr /home/users/xyz] 我想表演 declare -a product_array IFS=":" read -ra ADDR <<< "$Array1" for i in "${ADDR[@]}"; do DIR=${i}/aaa/deployment/traces/

我有3个元素的数组,我在for循环中检索这些元素并对其执行一些命令

我想将输出存储在单个数组中。我该怎么做

数组1包含

[ /home/users/abc  /home/users/pqr  /home/users/xyz]
我想表演

declare -a product_array
IFS=":"
read -ra ADDR <<< "$Array1" 
for i in "${ADDR[@]}"; do
  DIR=${i}/aaa/deployment/traces/    
  product_array=( $(product_array) $(ls $DIR)  )
done
声明-一个产品\u数组
IFS=“:”
read-ra ADDR语法

$(product_array)
这是完全错误的;它将尝试作为命令运行
product\u array
,并插入其输出()。你在找什么

"${product_array[@]}"
它使用正确的引号插入此名称的数组

虽然你也应该避免这种情况;总的来说,你似乎只是想

for dir in "${Array1[@]}"; do
    product_array+=("$dir"/*)
done

您还应该避免私有变量名使用大写字母;所有大写字母都是为系统变量保留的。

我对Bash中的数组还是相当陌生的,但我只是在没有for循环的情况下实现了这一点

a="1 2 3 4"
b="a b c d"
test=($(echo $a))
echo ${test[*]}

1 2 3 4

test+=($(echo $b))
echo ${test[*]}

1 2 3 4 a b c d

然而,这并不是OP所要求的。