通过每个子文件夹迭代一个函数

Iterate a function through every subfolder

我有一个函数可以获取一个文件,进行一些操作,然后创建一堆输出文件。 我有 100 个子文件夹名为:

d066, d067, d068.... d165, d166

他们每个人只有1个文件。我想做的是进入每个子文件夹,获取文件名,对其应用函数,离开子文件夹,进入下一个等等。

我写了这个脚本:

for i in {60..166}; do
    
    if [ $i -lt 100 ];
    then 
        var2=d0$i
    else
        var2=d$i
    fi             
    cd $var2 || exit             
    f=$(find . -type f)   
    gd2e.py -rnxFile $f   
    cd ..                
    
done

问题是我的代码离开了包含子文件夹的文件夹,然后停止了。有谁知道更好的方法吗?

假设函数可以使用目录作为输入参数的一部分(例如,gd2e.py -rnxFile ${i}/${f}),一些简化当前代码的想法:

while read -r f
do
    gd2e.py -rnxfFile "${f}"
done < <(find d{060..166} -type f)

如果 d{060..166} 目录可以包含您不想扫描的子目录,我们可以将 -maxdepth 1 添加到 find:

while read -r f
do
    gd2e.py -rnxfFile "${f}"
done < <(find d{060..166} -maxdepth 1 -type f)