スクリプトにインポートする検出されたファイルを繰り返し渡す方法

スクリプトにインポートする検出されたファイルを繰り返し渡す方法

次のように.doneで終わらないファイルを見つけました。

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

今私がしたいことは次のとおりです。

- 見つかった各ファイルをmyscriptに渡します。

– source コマンドを使用して myscript の各ファイルをインポートします。

- 各ソースファイルに対してmyscriptを実行します。

注:見つかった各ファイルに対して一度にmyscriptを繰り返し実行したいと思います。同時に、複数のファイルに対してmyscriptを実行したくありません。だから本質的に私は見つかったファイルを繰り返してmyscriptにソースを入力しようとします。どうすればいいですか?

ベストアンサー1

見つかった各ファイルに対してコマンドが実行され、findファイルmyscript名を最初のコマンドライン引数として渡しますmyscript

myscriptファイルをにインポートするには、そのmyscriptコードに次のものが必要です。

. ./"$1"

メモ:

  • 私はmyscriptそれがシェルによって解釈されると仮定します。
  • あなたは言及しましたが、sourceより.携帯可能です。
  • ./"$1"あなたが使用したので、私はそれを使用しました-execdirそうだの一部の実装は、find以降を置き換える文字列には含まれていません./。もしそうなら、{}-execdir事故起こることがあります。明示的に追加すると、./これを防ぐことができます。

おすすめ記事