在子目录列表上迭代 shell 脚本
Iterate shell script over list of subdirectories
我有一个文件夹(我们称之为 folder1
,它只包含子目录。我想编写一个 shell 脚本,在每个子目录上迭代多个 python 脚本。因为它是,我必须输入脚本中每个子目录的绝对路径,但我希望能够从 cd
到 folder1
并从那里简单地 运行 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 个文件,它将 运行 该目录中的所有文件
我有一个文件夹(我们称之为 folder1
,它只包含子目录。我想编写一个 shell 脚本,在每个子目录上迭代多个 python 脚本。因为它是,我必须输入脚本中每个子目录的绝对路径,但我希望能够从 cd
到 folder1
并从那里简单地 运行 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 个文件,它将 运行 该目录中的所有文件