複数のファイルに対して同時に同じコマンドを実行します。

複数のファイルに対して同時に同じコマンドを実行します。

各ファイルに対して同時に同じコマンドを個別に実行する必要があります。

頑張った

for file in *.txt; do ./script <"$file"; done

ただし、最初のタスクを開始して完了するまで待ってから、次のタスクに進みます。

一緒に始める必要があります。

答え1

scriptユーザー入力が不要な場合は、シェルのジョブ処理機能を使用してバックグラウンドで実行できます。

for file in *.txt; do ./script <"$file" & done

コマンドに接続すると、&バックグラウンドで実行されます。探す職業管理bash(またはお気に入りのシェル)のマニュアルページで詳細をご覧ください。

答え2

ls *.txt > list
cat list | parallel './script {}' &
wait

まず、listfile.txt ファイルをリストします。parallelコマンドはscriptfile_name ごとにバックグラウンドで実行されます。最後のwaitコマンドは、追加のコマンドを続行する前にすべてのバックグラウンド操作が完了するのを待ちます。

関連情報