Shell-Script

如何重複傳遞找到的文件以由腳本獲取

  • April 5, 2020

我正在尋找不以 .done 結尾的文件,如下所示:

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

現在,我想做的是以下內容:

  • 將每個找到的文件傳遞給 myscript

-source 使用 source 命令在 myscript 中的每個文件

  • 為每個源文件執行 myscript

注意:我想重複執行 myscript,為找到的每個文件執行一次。我不想同時為多個文件執行 myscript。所以本質上我正在尋找循環找到的文件並將它們源在 myscript 中。我怎樣才能做到這一點?

您的find命令myscript針對找到的每個文件執行,將文件名作為第一個命令行參數傳遞給myscript.

您想在 中獲取文件myscript,因此myscript應將其包含在其程式碼中:

. ./"$1"

筆記:

  • 我假設myscript是由 shell 解釋的。
  • 你提到source.更便攜。
  • 我用過./"$1",因為你用過-execdir似乎有些實現find不包含./在替換為{}after的字元串中-execdir。如果是這樣的話,那麼這種不幸就可能發生。添加顯式./可以防止這種情況。

引用自:https://unix.stackexchange.com/questions/578146