कमांड लाइन में </ dev / null & का उपयोग


12

मैंने निम्न कमांड लाइन का उपयोग करके एक उदाहरण जावा प्रोग्राम चलाने की कोशिश की। हालांकि, मुझे नहीं पता है कि अनुगामी भाग का < /dev/null &उपयोग किस लिए किया जाता है?

java   -cp  /home/weka.jar weka.classifiers.trees.J48 t train_file  >& log < /dev/null &

जवाबों:


21

< /dev/nullईओएफ को प्रोग्राम में तुरंत भेजने के लिए उपयोग किया जाता है, ताकि यह इनपुट के लिए इंतजार न करे ( /dev/null, नल डिवाइस, एक विशेष फाइल है जो इसे लिखे गए सभी डेटा को छोड़ देता है, लेकिन रिपोर्ट करता है कि राइट ऑपरेशन सफल रहा, और कोई डेटा प्रदान नहीं करता है) कोई भी प्रक्रिया जो इससे पढ़ती है, ईओएफ को तुरंत उपज देती है)। &पूर्ववर्ती प्रक्रिया को पृष्ठभूमि देने के लिए एक विशेष प्रकार का कमांड विभाजक है।

कार्यक्रम को बुलाए जाने के बिना, मैं सीधे नहीं जानता कि इसे इस तरह से चलाने की आवश्यकता क्यों है।


6

</dev/nullटर्मिनल से प्रोग्राम के इनपुट को डिस्कनेक्ट करता है। कुछ कार्यक्रम अलग तरह से प्रतिक्रिया करते हैं जो उनके मानक इनपुट से जुड़ा होता है। पुनर्निर्देशन के साथ </dev/null, प्रोग्राम यह बता सकता है कि उसका इनपुट टर्मिनल से नहीं आ रहा है, और अगर वह अपने मानक इनपुट से पढ़ने की कोशिश करता है, तो उसे तुरंत एंड-ऑफ़-फ़ाइल संकेत प्राप्त होगा।

&अंत में अकेला कार्यक्रम पृष्ठभूमि में निष्पादित होने का कारण बनता है। इसका मतलब है कि आपको तुरंत एक शेल प्रॉम्प्ट मिलता है। आपके बिना &, आपको एक शेल प्रॉम्प्ट तभी वापस मिलेगा जब प्रोग्राम निष्पादित हो।

ध्यान दें कि स्टैंडअलोन &से संबंधित नहीं है >&>&एक पुनर्निर्देशन ऑपरेटर है (tsh, bash और zsh में) जो प्रोग्राम के मानक आउटपुट और प्रोग्राम के मानक त्रुटि दोनों को ऑपरेटर (यहां log) के बाद निर्दिष्ट फ़ाइल नाम पर पुनर्निर्देशित करता है ।

दूसरे शब्दों में, जब यह कमांड लाइन देखता है तो शेल क्या करता है:

  • पृष्ठभूमि में एक प्रक्रिया शुरू करें। पृष्ठभूमि प्रक्रिया में:
    • /dev/null( Null डिवाइस ) में मानक इनपुट कनेक्ट करें ।
    • फ़ाइल में मानक आउटपुट और मानक त्रुटि दोनों को कनेक्ट करें log(फ़ाइल बना रहा है अगर यह अभी तक मौजूद नहीं है, और अगर यह मौजूद है तो इसे छोटा कर दिया जाए)।
    • में निष्पादन योग्य फ़ाइल के javaलिए देखें $PATH
    • 5 तर्क के साथ कि फ़ाइल निष्पादित -cp, /home/weka.jar, weka.classifiers.trees.J48, –t, train_file`।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.