在 bash 中的 for 循环中读取两个文件夹

1 bash shell loops for-loop

我实现了一个 bash 脚本或者读取了两个输入文件。我希望我读取的两个文件夹同时增加各自的文件。

我的例子是:

for folder1 in $in1/*;
do
for folder2 in $in2/*;
do

file1=`basename "$folder1`

file2=`basename "$folder2"`

done 
done
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以让for循环同时递增?

我提前谢谢你

Tom*_*ech 5

一种选择是将文件名存储在一对数组中:

#!/bin/bash

first=( "$in1"/* )
second=( "$in2"/* )

for i in "${!first[@]}"; do
    first_file=${first[i]}
    second_file=${second[i]}
done
Run Code Online (Sandbox Code Playgroud)

"${!first[@]}"扩展到第一个数组中的键列表,因此i将采用值012等。

如果您的数组长度不等,您将必须决定如何处理它。此外,每个数组中的文件将按字母顺序排列。