मान लीजिए आप एक पर्ल स्क्रिप्ट "foobar.pl" कि stdout कोएक स्टैंडअलोन बैश आदेश
date -R
निम्नलिखित प्रिंट है के रूप में किसी स्क्रिप्ट का आउटपुट चलाने के लिए और आप एक के रूप में जो कुछ भी है कि पर्ल स्क्रिप्ट आउटपुट चलाना चाहते हैं स्टैंडअलोन बैश कमांड (सुरक्षा समस्याओं के बारे में चिंता न करें क्योंकि यह एक विश्वसनीय वातावरण में चल रहा है)।
आप इसे एक स्टैंडअलोन कमांड के रूप में पहचानने के लिए कैसे बाश प्राप्त करते हैं?
मैंने xargs का उपयोग करने का प्रयास किया है, लेकिन ऐसा लगता है कि तर्क केवल को पूर्व परिभाषित कमांड में पास करना चाहते हैं।
मैं चाहता हूं कि पर्ल स्क्रिप्ट किसी भी मनमाने ढंग से कमांड को आउटपुट करने में सक्षम हो।
$command = 'date -R'
system($command); ## in the perl script
क्योंकि मैं इसे एक मौजूदा cygwin वातावरण में चलाना चाहते हैं से काम नहीं होता ...
foobar.pl | xargs bash -i {}
ऊपर क्योंकि पार्टी एक नई प्रक्रिया है और इस तरह से चल रहा है किया जा रहा है काम नहीं करता है bash_profile से प्रारंभिकरण और सेटिंग्स तत्काल नहीं मिलती हैं।
bash <($ OUTPUT) वह है जिसे मैं ढूंढ रहा था। यह पाइपिंग के साथ एक बड़ा अंतर बनाता है क्योंकि आपके पास अभी भी इसका नियंत्रण है - इनपुट के लिए। – yclian