【问题标题】:How to create for loops in bash script?如何在 bash 脚本中创建 for 循环?
【发布时间】:2013-11-19 12:19:55
【问题描述】:

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

FILE[1]=/tempA/aaa

FILE[2]=tempB/bbb

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

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

假设如下:

SOURCE[1]=/tempA/source/aaa

SOURCE[2]=/tempB/source/bbb


DEST[1]=/tempA/dest/

DEST[2]=/tempB/dest/

我需要从 source[1] 复制到 dest[1],也需要从 source[2] 复制到 dest[2]。所以我的问题是我需要如何编写 FOR 循环?或者除了for循环还有其他方法吗?

谢谢!

【问题讨论】:

    标签: bash


    【解决方案1】:

    您可以使用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 替换为适当的命令。 (您可以按照上面提到的形式声明数组,从而避免一个一个声明数组元素的需要。)

    【讨论】:

    • 非常感谢您抽出宝贵时间回复。我的脚本现在已经使用我自己的代码工作了。将来也许我可以用你的方式。再次感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    • 2018-05-20
    • 2022-10-14
    • 1970-01-01
    • 2021-12-30
    相关资源
    最近更新 更多