启动位于子目录中的多个脚本

时间:2015-06-18 14:57:28

标签: linux bash shell

这是我的问题。我有一个包含多个子目录的目录。在每个子目录中,至少有一个脚本sh。

我想做一个顺序执行所有脚本的脚本。

我对linux很新。

感谢您的帮助,

3 个答案:

答案 0 :(得分:2)

find . -name "*.sh" -exec {} \;

这是一个shell命令,从它运行的目录开始(由。指定),找到以.sh结尾的文件名,然后执行这些文件(找到的文件在{中替换) })。反斜杠可以防止分号被shell扩展(这里是bash)。

答案 1 :(得分:1)

从顶层目录运行以下命令:

for f in `find . -type f -name \*.sh`; do $f; done

find命令将找到所有.sh文件。 find命令的输出(以空格分隔的脚本路径名列表)成为for命令的输入。 for命令处理每个输入,将每个条目分配给变量f。 " $ f"执行每个脚本。

答案 2 :(得分:1)

尝试使用findfor

进行操作
for file in `find . -type f -name "*.sh"`; do sh $file; done

使用也可以将其存储在数组中并执行:

array=($(find . -type f -name "*.sh"))
for file in ${array[@]};do sh $file; done