1

我在构建“动态”数组时遇到问题。

首先,我创建一个数组来生成文件名列表:

declare -a pgidarr=`run "select partition_id from ETL.PARTITION_GROUP_MEMBER where partition_group_id=${PGID}"`
for i in ${pgidarr[@]}
do
ARRLOOP=$i
PAID=`run "select LPAD('${ARRLOOP}',2,'0')"` #LPAD the partition ID
FILENAME=ABCD_${PAID}_000000.txt

现在在同一个循环中,我想创建一个新数组

trigarrat=("${trigarrat[@]}" $FILENAME)

但是当我运行它并没有替换 $FILENAME

在谷歌上我找不到太多关于数组和变量的信息,任何人都可以帮助我吗?;) 谢谢!亚历克斯

bash --version GNU bash,版本 3.1.17(1)-release

4

1 回答 1

3

尝试使用+=将元素附加到trigarrat

declare -a pgidarr=`run "select partition_id from ETL.PARTITION_GROUP_MEMBER where partition_group_id=${PGID}"`
trigarrat=()
for i in ${pgidarr[@]}
do
    ARRLOOP=$i
    PAID=`run "select LPAD('${ARRLOOP}',2,'0')"` #LPAD the partition ID 
    FILENAME=ABCD_${PAID}_000000.txt
    trigarrat+=($FILENAME)
done

参考:http ://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameters

于 2013-03-27T18:05:45.060 回答