Saya ingin memproses banyak file dan karena saya sudah ada di sini sekelompok core saya ingin melakukannya secara paralel:
for i in *.myfiles; do do_something $i `derived_params $i` other_params; done
Saya tahu solusi Makefile tetapi perintah saya membutuhkan argumen dari daftar globbing shell. Apa yang saya temukan adalah:
> function pwait() {
> while [ $(jobs -p | wc -l) -ge $1 ]; do
> sleep 1
> done
> }
>
Untuk menggunakannya, yang harus dilakukan adalah meletakkan & setelah pekerjaan dan panggilan tunggu, parameter memberikan jumlah proses paralel:
> for i in *; do
> do_something $i &
> pwait 10
> done
Tetapi ini tidak bekerja dengan baik, misalnya saya mencobanya dengan misalnya untuk loop mengkonversi banyak file tetapi memberi saya kesalahan dan meninggalkan pekerjaan dibatalkan.
Saya tidak dapat percaya bahwa ini belum dilakukan karena diskusi di milis zsh sudah sangat tua sekarang. Jadi, apakah Anda tahu yang lebih baik?
echo "DONE"
setelah loop yang dijalankan sebelum pekerjaan aktif tidak selesai. => Ini membuat saya berpikir bahwa pekerjaan tidak dilakukan.