Komut dosyasını girdi olmadan çalıştırmak için paralel kullanma


10

GNU paralel ile bir komut dosyasının birçok örneğini çalıştırmaya çalışıyorum, ancak komut dosyası hiçbir argüman almıyor.

Sadece 'paralel foo.sh' yürütürsem bunu elde ederim:

parallel: Warning: Input is read from the terminal. Only experts do this on purpose. Press CTRL-D to exit.

Yanıtlar:


10

On kez çalıştırmak istediğinizi varsayarsak, bu sözdizimi işe yarar:

parallel -n0 foo.sh ::: {1..10}

parallelbir 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.shne kadar paralellik istediğinizi gösteren hiçbir giriş sırası içermiyor. Şifreli uyarı, parallelbir 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:

  • parallelher 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.
  • -n0dizi 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.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.