Xargs के साथ परिभाषित फ़ंक्शन का उपयोग कैसे करें


17

यह मेरा कोड है

#!/bin/bash

showword() {
  echo $1
}

echo This is a sample message | xargs -d' ' -t -n1 -P2 showword

इसलिए मेरे पास एक फ़ंक्शन है showwordजो आप फ़ंक्शन के पैरामीटर के रूप में जो भी स्ट्रिंग पास करते हैं, उसे प्रतिध्वनित करता है।

फिर मुझे xargsफ़ंक्शन को कॉल करने और फ़ंक्शन को एक बार में एक शब्द पास करने की कोशिश करनी है, और फ़ंक्शन की 2 प्रतियों को समानांतर में चलाना है। जो चीज़ काम नहीं कर रही है, xargsवह फ़ंक्शन को नहीं पहचानती है। मैं कैसे हासिल कर सकता हूं जो मैं करने की कोशिश कर रहा हूं, मैं फ़ंक्शन के साथ xargs कैसे काम कर सकता हूं showword?


जवाबों:


26

फ़ंक्शन निर्यात करने का प्रयास करें, फिर उसे सब-कॉल में कॉल करें:

showword() {
  echo $1
}

export -f showword
echo This is a sample message | xargs -d' ' -t -n1 -P2 bash -c 'showword "$@"' _

धन्यवाद, लेकिन आप मेरे उत्तर के बारे में क्या सोचते हैं?
जीएमस्टर

@FazleA।: मैं उस पर टिप्पणी करने का इरादा रखता हूं, लेकिन क्योंकि आप यहां पूछते हैं, मैं यहां जवाब दूंगा। जब आप किसी भी पैरामीटर को पास नहीं करते हैं, तो यह काम नहीं करेगा showword
कोउंगलम

2
एक और प्रश्न, अनुगामी _ की आवश्यकता क्यों है? क्या यह xargs को किसी और चीज़ को संसाधित करने से रोकने के लिए है?
जीएमस्टर


जब मैं निर्यात करता हूं तो मुझे "निर्यात: अवैध विकल्प-एफ" मिल रहा है
सागर चामलिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.