"हाँ" कमांड का क्या मतलब है?


39

yesयूनिक्स / लाइनक्स में एक कमांड है जो मूल रूप से असीम रूप से प्रिंट yकरता है stdout। इसका क्या मतलब है, और यह कैसे उपयोगी है?


यहां कुछ अतिरिक्त संभावनाएं ।

1
के संभावित डुप्लिकेट क्या `yes` आदेश की बात है? ... (इसे डुप्लिकेट के रूप में चिह्नित करना क्योंकि अन्य नए प्रश्न बेहतर पूछे गए और बेहतर उत्तर दिए गए हैं)।
आदित्य


जवाबों:


41

हाँ किसी भी आदेश के प्रति एक प्रतिज्ञान (या नकारात्मक; उदा हां n) प्रतिक्रिया भेजने के लिए उपयोग किया जा सकता है जो अन्यथा एक अनुरोध करेगा, जिससे कमांड गैर-अंतःक्रियात्मक रूप से चल सकेगी।

हेड कमांड के साथ संयोजन में हाँ कमांड का उपयोग परीक्षण के साधनों के लिए बड़ी मात्रा में फाइलें उत्पन्न करने के लिए किया जा सकता है।

इसका उपयोग यह परीक्षण करने के लिए भी किया जा सकता है कि कोई सिस्टम उच्च भार को कितनी अच्छी तरह से संभालता है, 100% प्रोसेसर के उपयोग में हां के परिणाम के रूप में, एकल प्रोसेसर वाले सिस्टम के लिए (मल्टीप्रोसेसर सिस्टम के लिए, प्रत्येक प्रोसेसर के लिए एक प्रक्रिया अवश्य चलाना चाहिए)। यह, उदाहरण के लिए, यह जांचने के लिए उपयोगी हो सकता है कि क्या प्रोसेसर के 100% पर चलने पर सिस्टम का कूलिंग सिस्टम प्रभावी होगा।

2006 में, यस कमांड को यह जांचने के लिए प्रचार मिला कि किसी उपयोगकर्ता का मैकबुक इंटरमिटेंट शटडाउन सिंड्रोम से प्रभावित है या नहीं। मैक ओएस एक्स के तहत टर्मिनल के माध्यम से दो बार हाँ कमांड चलाकर, उपयोगकर्ता अपने कंप्यूटर के सीपीयू को अधिकतम करने में सक्षम थे, और इस तरह देखें कि क्या विफलता संबंधित थी या नहीं

विकिपीडिया के माध्यम से: http://en.wikipedia.org/wiki/Yes_(Unix)


9
अतिरिक्त नुकसान के लिए, कोशिश करेंyes `yes yes`
sendmoreinfo


ओह, यह एक अच्छा तनाव परीक्षण है। बस इसे आज़माया, फिर मेरे सहकर्मी से एक नया vm xD
माँगने दौड़ा

17

यह एक विवादास्पद राय हो सकती है, लेकिन मेरे विचार में यह कमांड-लाइन टूल्स में खराब यूजर इंटरफेस के लिए एक बदसूरत फिक्स है

कुछ कमांड-लाइन टूल उपयोगकर्ता को तुरंत सवाल पूछते हैं और उनके पास गैर-संवादात्मक रूप से चलाने का विकल्प नहीं होता है; उदाहरण के लिए कुछ इस तरह की कल्पना करो

$ frobnicate *
frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
...

चूंकि प्रश्न का उत्तर मानक इनपुट से लिया गया है, इस समस्या का एक त्वरित समाधान एक एप्लिकेशन है y\nजो लगातार स्ट्रिंग को आउटपुट करता है , जो वास्तव में yesकरता है। इस आउटपुट को किसी दिए गए कमांड के इनपुट के रूप में भेजने के लिए यूनिक्स पाइप का उपयोग किया जा सकता है।

$ yes | frobnicate

इस दृष्टिकोण के साथ एक समस्या यह है कि yesइसका उत्तर देने वाले प्रश्न की जांच करने की कोई संभावना नहीं है:

frobnicate file a.txt? (y/n) y
frobnicate file b.txt? (y/n) y
format device /dev/sda1? (y/n) y
frobnicate file c.txt? (y/n) y

एक बेहतर समाधान, जब यह उपलब्ध होता है, तो गैर-अंतःक्रियात्मक रूप से चलाने के लिए एक विशिष्ट विकल्प होता है, जैसे कि rm -fया apt-get -y। यह एप्लिकेशन में अधिक समझदार व्यवहार को कोडित करने की अनुमति देता है।


1
मैंने अन्य सभी उत्तर पढ़े। मैं पूरी तरह से बदसूरत ठीक wrt तुम्हारा से सहमत ... हालांकि यह करता है उच्च CPU लोड करने के लिए कंप्यूटर की प्रतिक्रिया के परीक्षण के लिए एक वैध उपयोग कर सकते है।
वाइल्डकार्ड

6
बेशक, आप उच्च सीपीयू भारों के लिए कंप्यूटर की प्रतिक्रिया का परीक्षण करने के लिए मालिकाना सॉफ्टवेयर "माइक्रोसॉफ्ट विंडोज" का उपयोग कर सकते हैं, लेकिन "हां" खुला स्रोत है।
वाइल्डकार्ड

1
यह सबसे सुंदर बदसूरत सुधारों में से एक है
Jezzamon

4

yesजब मैं एक से अधिक अनज़िप कर रहा होता हूं, तो मैं उन सभी .zip फ़ाइलों का उपयोग करना पसंद करता हूं जिनमें सभी समान नाम वाली एक ही फ़ाइल होती है और मुझसे पूछा जाता है कि प्रत्येक मामले में क्या करना है (उदाहरण के लिए एक लाइसेंस अनुबंध)।

yes | for z in *.zip; do unzip "$z"; done 

2

बस इसके लिए एक और उपयोग किया गया: सिर्फ जीरो की तुलना में एक अलग पैटर्न के साथ हार्ड डिस्क को मिटा देना पसंद किया (जैसे: dd if = / dev / zero of = / dev / sdd bs = 1M) और इसके लिए 'हां' का इस्तेमाल किया:

yes UUUUUUUUUUUUU > /dev/sdd


1

एक सहकर्मी ने इसका उपयोग एक उपन्यास में एक पासवर्ड इनपुट करने के लिए किया था

yes password | passwd

passwdपुराने पासवर्ड के लिए पहले पूछेंगे, यदि उपयोगकर्ता रूट या सुपरयुसर नहीं है और तब तक जारी नहीं रहेगा जब तक कि सही पासवर्ड दर्ज नहीं किया जाता है। तो या तो उपयोगकर्ता रूट है या passwordपुराना पासवर्ड है और कुछ भी नहीं बदला है।
माइकल कोनित्ज़का

@MichaelKonietzka वास्तव में। लेकिन जिन स्थितियों का आपने उल्लेख किया है, यह अभी भी एक उपयोगी उपयोग मामला है।
frogstarr78 6

3
सिवाय इसके इतिहास के इतिहास में सादे संदर्भ में जारी रहेगा। Crazeyyy।
ग्लेनो

3
@ बलेनो बैश में, आप इसे रिकॉर्ड करने से रोकने के लिए एक स्थान के साथ पूर्ववर्ती कर सकते हैं (जैसा कि stackoverflow.com/q/640403/118153 पर )
IIRidayn

2
इसके अलावा, यह प्रक्रिया सूची ( psया topसही समय पर) में सभी स्थानीय उपयोगकर्ताओं के लिए पासवर्ड लीक करता है ।
फेडेरिको पोलोनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.