如何在bash脚本中创建for循环?

时间:2013-11-19 04:14:56

标签: bash

通常在bash脚本中编写for循环时,我会这样写:

FILE[1]=/tempA/aaa

FILE[2]=tempB/bbb

for FILES in `ls -1 ${FILE[@]}`
do 
   echo $FILES
done

这将显示FILE,具体取决于我初始化FILE的数量,因为它在数组中。 我需要创建一个bash脚本来将文件从目录复制到另一个目录。

假设如下:

SOURCE[1]=/tempA/source/aaa

SOURCE[2]=/tempB/source/bbb


DEST[1]=/tempA/dest/

DEST[2]=/tempB/dest/

我需要从源[1]复制到dest [1]也从源[2]复制到dest [2]。所以我的问题是如何编写FOR循环?或者还有另外一种方法可以做除了循环之外的其他方式?

谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用for循环迭代数组:

$ SOURCE=( /tempA/source/aaa /tempB/source/bbb )      # declare SOURCE array
$ DEST=( /tempA/dest /tempB/dest )                    # declare DEST array
$ for i in ${!SOURCE[@]}; do echo "${SOURCE[$i]}" "${DEST[$i]}"; done
/tempA/source/aaa /tempA/dest
/tempB/source/bbb /tempB/dest

根据需要执行的操作,使用适当的命令替换echo。 (您可以以上述形式声明数组,从而无需逐个声明数组元素。)