创建 shell 脚本以在文件夹中查找 shell 脚本并执行它们



我在一个主文件夹下有复杂的文件夹结构。外壳脚本可以位于的文件夹最大深度为 3 级。

我想编写一个 shell 脚本,它将扫描所有文件夹,找到任何以 .sh 结尾的文件并执行相同的文件。

任何帮助将不胜感激。

尝试以下脚本。

#!/bin/bash
all_files=` find Testdir -name "*.sh" -type f`
for file in $all_files
do
        bash $file
done

find 命令以递归方式查找以.sh扩展名结尾的所有文件名,并将输出存储在变量中。使用该变量,for 循环逐个执行所有文件。

注意: 确保在 for 循环中包含 if 条件,以检查文件名是否是当前正在执行的脚本文件。因为,如果你 执行该文件,它将进入无穷大。它一次又一次 无限执行。

尝试

#! /bin/bash
find /mainfolder -name '*.sh' > /home/dumm.txt
while read abc
do
$abc
done < <(cut -f1 /home/dumm.txt)

解释:

  • find 命令在主文件夹下搜索并列出以".sh"结尾的文件名的(完整)路径
  • 列表存储在文件中
  • 然后,在 while 循环中执行此文件的每一行

最新更新