Dengan asumsi Anda ingin menjalankan sepuluh kali, sintaks ini akan berfungsi:
parallel -n0 foo.sh ::: {1..10}
parallel
membutuhkan urutan input dengan panjang tertentu ( ::: {1..10}
) DAN Anda perlu mengabaikan konten dari urutan input ( -n0
), Anda hanya peduli tentang panjangnya.
Perintah asli Anda parallel foo.sh
:, tidak mengandung urutan input untuk menunjukkan berapa banyak paralelisme yang Anda inginkan. Peringatan samar memberitahu Anda bahwa parallel
akan mulai mendengarkan terminal untuk urutan input, dan bahwa ini mungkin bukan yang Anda inginkan.
Inilah contoh tutorialnya:
seq 10 | parallel -n0 my_command my_args
Bagaimana itu bekerja:
parallel
selalu mengambil urutan input dari suatu tempat. Itu bisa berupa urutan ruang-dibatasi inline yang didahului oleh :::
ATAU urutan yang dibatasi-baris baru dari file atau sumber seperti filel seperti pipa. Dalam contoh ini urutan input dari pipa.
seq 10
menghasilkan urutan digit berbatas garis baru dari satu hingga sepuluh.
- The
-n0
pilihan memberitahu sejajar dengan mengabaikan nilai-nilai dalam urutan masukan. Yang kami pedulikan hanyalah panjang urutannya, bukan isinya. Meskipun digit tidak digunakan, perintah masih akan mengeksekusi sepuluh kali.
Contoh lain:
parallel -n0 echo -n 'x' ::: {1..5}
Bagaimana itu bekerja:
- Urutan input sebaris.
{1..5}
menghasilkan urutan digit yang dibatasi ruang dari satu hingga lima.
-n0
mengabaikan nilai-nilai urutan (dan kami 'x'
malah menggaungkan string setiap kali.)
- Keluaran:
xxxxx
Dibandingkan dengan:
parallel echo -n ::: {1..5}
Bagaimana itu bekerja:
- Urutan input sebaris.
{1..5}
menghasilkan urutan digit yang dibatasi ruang dari satu hingga lima.
- Setiap nilai dari urutan input digunakan sebagai argumen untuk
echo
. Pesanan tidak dijamin.
- Output:
43215
. Bisa pesanan apa saja.