通常在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循环?或者还有另外一种方法可以做除了循环之外的其他方式?
谢谢!
答案 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
。 (您可以以上述形式声明数组,从而无需逐个声明数组元素。)