如何重複傳遞找到的檔案以由腳本獲取

如何重複傳遞找到的檔案以由腳本獲取

我發現不以 .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這次事故可能會發生。添加顯式./可以防止這種情況。

相關內容