我在一个主文件夹下有复杂的文件夹结构。 shell脚本所在的文件夹最多可达3级。
我想编写一个shell脚本,它将扫描所有文件夹,查找以.sh结尾的任何文件并执行相同的操作。
任何帮助都将不胜感激。
答案 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)
说明: