Bash:在for循环之外的数组为空

时间:2019-01-21 02:24:35

标签: arrays bash loops variables

我正在创建一个脚本来轮换我的备份,该脚本的一个重要部分是根据某些条件查找文件,然后将其移动或擦除。

我已经完成了循环,但是不能在循环外使用Array(path_array)。我已经阅读了几篇关于此的文章,但不确定这些答案如何适用于我的具体情况。请参见下面的代码。

谢谢!

#!/bin/bash

# anos=(2016 2017 2018 2019)
# meses=(02)

meses=(01 02 03 04 05 06 07 08 09 10 11 12)
anos=(2018)




source="/volume1/NetBackup/Servers/MIA/"
destination="/volume1/NetBackup/Servers/MIA/_Archive"  



######## Pasar los Files del Primer dia del Año a Archiving

for i in  ${anos[@]}; do
    for j in  ${meses[@]}; do
        month_start=$(date +$i-$j-01)
        month_finish=$(date +$i-$j-02)
        # echo $month_start
        # echo $month_finish
        path_array=(`find $source -type f -not -path "*/_Archive/*" -newermt $month_start ! -newermt $month_finish | cut -sd / -f 6-`)
        # echo $path_array  

        # echo Archivos año: $i mes: $j

        #printf '%s\n' "${path_array[@]}"
    done
done


 printf '%s\n' "${path_array[@]}"

1 个答案:

答案 0 :(得分:0)

我猜您想附加到数组

path_array+=( $(find $source -type f -not -path "*/_Archive/*" -newermt $month_start ! -newermt $month_finish | cut -sd / -f 6-) )