
これは比較的簡単な質問です。ループ内の実行可能プログラムに複数のファイルを渡そうとしています。複数の戦略 (配列に格納するなど) を試しましたが、ファイル名が変数として認識されないようです。表示されるエラーは次のとおりです: そのようなファイルまたはディレクトリはありません。
私の最新の試みの概要:
FILES=path/*/*
for f in $FILES
do
./function -input $f
done
私はbashシェルで作業しています。
答え1
グロブ展開シーケンスを格納するためにプレーンな変数を使用する代わりに、適切な配列を使用し、シェルのグロブオプションを有効にしてglobstar
すべてのサブディレクトリのファイルを読み込むことをお勧めします。
shopt -s globstar nullglob
file_list=(path/**/*)
配列をループして各ファイルを処理します
for file in "${file_list[@]}"; do
printf '%s\n' "$file"
# Your other actions on file goes here
done