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

时间:2017-01-31 07:41:53

标签: bash shell unix scripting

我在一个主文件夹下有复杂的文件夹结构。 shell脚本所在的文件夹最多可达3级。

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

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:2)

尝试以下脚本。

#!/bin/bash

all_files=` find Testdir -name "*.sh" -type f`

for file in $all_files
do
        bash $file
done

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

  

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

答案 1 :(得分:1)

尝试

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

说明:

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