कुछ भी नहीं xargs करने के लिए


14

मेरे पास एक स्क्रिप्ट है जो कुछ परिस्थितियों में स्टडआउट पर कुछ भी नहीं हो सकती है। स्क्रिप्ट के अंत में, मैं उन लाइनों को पास करता हूं जो मुझे xargs का उपयोग करके किसी अन्य कमांड में करना है। मेरी समस्या यह है, जब स्टडआउट पर कुछ भी नहीं है, तो मुझे विशिष्ट "उपयोग: प्रोग्राम arg1 arg2" त्रुटि संदेश मिलता है।

इससे कैसे बचा जा सकता है?


8
एक उत्तर में अपना "EDIT" स्थानांतरित करें और अपना स्वयं का उत्तर स्वीकार करें। इस तरह आपकी खोज अन्य व्यक्तियों के लिए उपयोगी होगी। meta.unix.stackexchange.com/questions/809/…
andcoz

1
उस समय पर्याप्त अंक नहीं थे। अभी कर देंगे।
रिचर्ड

जवाबों:


13

आप एक की जरूरत है -rया --no-run-if-emptyविकल्प।

ध्यान रखें कि यह विशेष व्यवहार क्रॉस-प्लेटफ़ॉर्म बनाने के लिए कठिन है। डिफ़ॉल्ट रूप से xargsचलाने के BSD संस्करण -r। GNU संस्करण को इसकी आवश्यकता है। GNU के साथ संगतता के लिए xargsइग्नोर -rध्वज का FreeBSD संस्करण । मैक ओएस एक्स संस्करण भी ध्वज को स्वीकार नहीं करता है और एक त्रुटि फेंकता है illegal option

फिर आप $OSTYPEक्रॉस-प्लेटफ़ॉर्म स्क्रिप्ट लिखने के लिए एक OS डिटेक्शन का उपयोग करना चुन सकते हैं । और भी बेहतर, xargsस्वयं के व्यवहार का पता लगाने का प्रयास करें । इसे चलाएं -rऔर यदि वह विफल हो जाता है (स्थिति कोड> 0), तो इसे बिना चलाएं -r


3

क्यों आप आदमी पृष्ठों को पढ़ना चाहिए ...

-rया --no-run-if-emptyझंडे मेरे दोस्त हैं।

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