在子目录列表上迭代 shell 脚本

Iterate shell script over list of subdirectories

我有一个文件夹(我们称之为 folder1,它只包含子目录。我想编写一个 shell 脚本,在每个子目录上迭代多个 python 脚本。因为它是,我必须输入脚本中每个子目录的绝对路径,但我希望能够从 cdfolder1 并从那里简单地 运行 shell 脚本并让它自动遍历子目录,无论它们的名称或 folder1.

的位置如何

当前代码(另存为shellscript.sh):

#! /bin/sh

declare -a arr=("/path/folder1/subdir1"  "/path/folder1/subdir2" "/path/folder1/subdir3" "/path/folder1/subdir4")

for i in "${arr[@]}"
do
    echo "$i"
    python /path/to/pythonscript1.py "$i"
    python /path/to/pythonscript2.py "$i"
done

然后我可以 运行 打开一个终端 (Mac OSX v 10.13.6) 和 运行 sh path/to/shellscript.sh。我希望脚本早期的 arr 声明根据我所在的任何 cwd 的内容自动填充。我发现 this 有用 link 并且能够 运行作为终端中的独立命令,但无法弄清楚如何将其合并到 shell 脚本中。有什么建议吗?

    for dir in ./* ./**/*    # list directories in the current directory
    do
        python $dir
    done

./* 是目录中的文件,./**/* 是子文件夹中的文件。

确保您的目录中只有 python 个文件,它将 运行 该目录中的所有文件