動画のリストを繰り返し、スクリプトを使用して.aviから.mp4に変換します(各ファイルについて約1分かかる)。bashスクリプトで長い関数を繰り返し呼び出す方法
find . -name "*.avi" -type f | while read FILE; do
HandbrakeCLI [flags] $FILE # execute 30 sec ~ 2 min function here
done
問題は、連続した呼び出しがブロックであるように、最初のファイルでのみ実行されているようです。
各ケースを処理するために非同期スレッドを生成するにはどうすればよいですか?
これは、SSHの新しいプロセスを解決しようとしているそのほかの問題の複製である、そしてこの溶液を、SSHで使用可能な引数に基づいています。 イテレータで新しいbashスレッドを生成する方法を尋ねています。そういう意味で重複しているチケットがありますか?
:
このコマンドが実行されているものをトレースするには、あなたはそのようにそれを変更することができますファイル? – Cyrus
ただのメモです。ループは必要ありません。 'find'の' -exec'オプションを使うことができます: 'find。 -name "* .avi" -type f -exec HandbrakeCLI ... {} \; ' – hek2mgl
コマンドラインでアンパサンド'& 'を最後の文字' HandbrakeCLI& 'で指定します。これはすべてのコマンドに対して新しいスレッドを開始します。 – PeterMmm