Bash:将命令输出添加到现有数组
我有3个元素的数组,我在for循环中检索这些元素并对其执行一些命令 我想将输出存储在单个数组中。我该怎么做 数组1包含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/
[ /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所要求的。