मान लें कि आप दस बार चलाना चाहते हैं, तो यह सिंटैक्स काम करेगा:
parallel -n0 foo.sh ::: {1..10}
parallel
कुछ लंबाई के इनपुट अनुक्रम की आवश्यकता है ( ::: {1..10}
) और आपको इनपुट अनुक्रम की सामग्री को अनदेखा करने की आवश्यकता है ( -n0
), आपको केवल इसकी लंबाई के बारे में परवाह है।
आपकी मूल कमांड:, parallel foo.sh
यह इंगित करने के लिए कोई इनपुट अनुक्रम नहीं है कि आप कितनी समानता चाहते हैं। गुप्त चेतावनी आपको बता रही है कि parallel
इनपुट अनुक्रम के लिए टर्मिनल सुनना शुरू करने जा रहा है, और यह संभवतः वह नहीं है जो आप चाहते हैं।
यहाँ ट्यूटोरियल उदाहरण है:
seq 10 | parallel -n0 my_command my_args
यह काम किस प्रकार करता है:
parallel
हमेशा कहीं से एक इनपुट अनुक्रम लेता है। यह एक इनलाइन स्पेस-सीमांकित अनुक्रम हो सकता है जो :::
एक फ़ाइल या फाइललाइक स्रोत जैसे पाइप से एक न्यूलाइन-सीमांकित अनुक्रम से पहले होता है । इस उदाहरण में इनपुट अनुक्रम एक पाइप से है।
seq 10
एक से दस तक अंकों का एक नया-सीमांकित अनुक्रम पैदा करता है।
-n0
विकल्प इनपुट अनुक्रम में मूल्यों की अनदेखी करने के लिए समानांतर में बताता है। हम सभी के बारे में परवाह करते हैं अनुक्रम की लंबाई है, इसकी सामग्री नहीं। हालाँकि अंकों का उपयोग नहीं किया जाता है, फिर भी कमांड दस बार निष्पादित होगी।
एक और उदाहरण:
parallel -n0 echo -n 'x' ::: {1..5}
यह काम किस प्रकार करता है:
- इनपुट अनुक्रम इनलाइन है।
{1..5}
एक से पांच तक अंकों का एक अंतरिक्ष सीमांकित अनुक्रम पैदा करता है।
-n0
अनुक्रम मानों को अनदेखा करता है (और हम 'x'
इसके बजाय हर बार स्ट्रिंग को प्रतिध्वनित करते हैं ।)
- आउटपुट:
xxxxx
से तुलना:
parallel echo -n ::: {1..5}
यह काम किस प्रकार करता है:
- इनपुट अनुक्रम इनलाइन है।
{1..5}
एक से पांच तक अंकों का एक अंतरिक्ष सीमांकित अनुक्रम पैदा करता है।
- इनपुट अनुक्रम से प्रत्येक मान का उपयोग तर्क के रूप में किया जाता है
echo
। आदेश की गारंटी नहीं है।
- आउटपुट:
43215
। कोई भी आदेश हो सकता है।