如何重复传递找到的文件以由脚本获取

如何重复传递找到的文件以由脚本获取

我发现不以 .done 结尾的文件,如下所示:

find -type f -not -name \*.done -execdir myscript {} \;

现在,我想做的是:

-将每个找到的文件传递给 myscript

-使用 source 命令获取 myscript 中的每个文件

- 为每个源文件运行 myscript

注意:我想重复运行 myscript,每个找到的文件运行一次。我不想同时为多个文件运行 myscript。所以本质上我正在寻求循环找到的文件并将它们来源到 myscript 中。我怎样才能做到这一点?

答案1

您的find命令会myscript针对找到的每个文件运行,并将文件名作为第一个命令行参数传递给myscript.

您想要在 中获取文件myscript,因此myscript应在其代码中包含以下内容:

. ./"$1"

笔记:

  • 我假设myscript是由 shell 解释的。
  • 你提到source.更便携。
  • 我用了,./"$1"因为你用了-execdir它似乎的某些实现find不包含在替换after 的./字符串中。如果是这样的话,那么{}-execdir这次事故可能会发生。添加显式./可以防止这种情况。

相关内容