On kez çalıştırmak istediğinizi varsayarsak, bu sözdizimi işe yarar:
parallel -n0 foo.sh ::: {1..10}
parallel
bir uzunluk ( ::: {1..10}
) giriş dizisine ihtiyaç duyar VE giriş dizisinin ( -n0
) içeriğini görmezden gelmeniz gerekir , yalnızca uzunluğunu önemsersiniz.
Orijinal komutunuz:, parallel foo.sh
ne kadar paralellik istediğinizi gösteren hiçbir giriş sırası içermiyor. Şifreli uyarı, parallel
bir giriş dizisi için terminali dinlemeye başlayacağını ve bunun muhtemelen istediğiniz şey olmadığını söylüyor.
İşte öğretici örnek:
seq 10 | parallel -n0 my_command my_args
Nasıl çalışır:
parallel
her zaman bir yerden bir girdi dizisi alır. :::
OR'den önce gelen bir satır içi boşlukla sınırlandırılmış sekans olabilir veya bir dosyadan veya bir boru gibi filelike bir kaynaktan gelen yeni satırla sınırlandırılmış bir sekans olabilir. Bu örnekte giriş dizisi bir borudan alınmıştır.
seq 10
bir ile on arasında yeni satır ile sınırlandırılmış bir basamak dizisi üretir.
-n0
İsteğe bağlı giriş dizisi değerleri göz ardı paralel anlatır. Tek önemsediğimiz, dizinin uzunluğu değil, içeriği. Rakamlar kullanılmasa da, komut yine de on kez yürütülür.
Başka bir örnek:
parallel -n0 echo -n 'x' ::: {1..5}
Nasıl çalışır:
- Giriş sırası satır içi.
{1..5}
bir ile beş arasında bir boşlukla sınırlandırılmış basamak dizisi üretir.
-n0
dizi değerlerini yoksayar (ve 'x'
her seferinde dizeyi yankılarız .)
- Çıktı:
xxxxx
Karşılaştırmak:
parallel echo -n ::: {1..5}
Nasıl çalışır:
- Giriş sırası satır içi.
{1..5}
bir ile beş arasında bir boşlukla sınırlandırılmış basamak dizisi üretir.
- Giriş dizisindeki her bir değer, argüman olarak kullanılır
echo
. Sipariş garanti edilmez.
- Çıktı:
43215
. Herhangi bir sipariş olabilir.