क्यों 'इको - हेल्प' मुझे इको का पेज नहीं देता है?


20

मैंने बैश में 'मैन इको' की कोशिश की और इसने मुझे बताया कि 'इको - हेल्प' तब बाहर निकलने में मदद प्रदर्शित करेगा, और इसी तरह, 'इको - इवर्सन' संस्करण और निकास को आउटपुट करेगा। लेकिन यह काम क्यों नहीं करता है? 'इको - हेल्प' सिर्फ शब्दशः '-हेल्प' का शाब्दिक अर्थ है।


2
एक सहायता संदेश की कि उत्पादन नोट से echo --helpएक है बग । कल्पना करें कि यदि आप करते हैं तो क्या होता है: printf "The option you entered is: " ; echo "$opt"और शेल चर optहोता है जिसमें पाठ होता है --help। POSIX मानक के अनुसार, echoइस तरह से व्यवहार करने की अनुमति नहीं है, लेकिन GNU गूंज अप्रिय रूप से गैर-अनुरूप है।
आर ..

1
@ आर .. तो echo -eऔर echo -nभी एक बग है, आपके तर्क से?
टिलो

@ टायिलो: पीओएसआईएक्स में विनिर्देश देखें, या मेरी समस्या का कवरेज यहां देखें: etalabs.net/sh_tricks.html
R ..

@R .. कल्पना करें कि अगर आप क्या करते हैं: प्रिंटफ "आपके द्वारा दर्ज किया गया विकल्प है:"; इको "$ ऑप्ट" और शेल वैरिएबल ऑप्ट टेक्स्ट -ई या एन में समाहित होता है।
टाइयलो

@ टायिलो: इसे फिर से समझाने के बजाय मुझे एक ऐसे पृष्ठ पर पसंद आया जहाँ मैंने पहले ही उस प्रश्न का उत्तर समझाया।
आर ..

जवाबों:


26

man echoechoकार्यक्रम से संबंधित है । GNU एक विकल्प echo का समर्थन करता है --help, जैसा कि कुछ अन्य करते हैं। जब आप echoबैश में दौड़ते हैं तो आपको इसके बिल्टिनecho मिलते हैं जो नहीं है।

echoबिलिन के बजाय कार्यक्रम को एक्सेस करने के लिए , आप या तो इसे एक रास्ता दे सकते हैं:

/bin/echo --help

या अंतर्निहित संस्करण को अक्षम करने के लिए बैश enableकमांड का उपयोग करें :

$ enable -n echo
$ echo --help

बैश में बहुत सारे बेसिक कमांड के अंतर्निहित संस्करण हैं, क्योंकि ऐसा करना थोड़ा तेज है, लेकिन आप हमेशा उन्हें इस तरह से बायपास कर सकते हैं जब आपको आवश्यकता होती है।


उपयोग करने के लिए मुझे सही काम करता है zshenableहालांकि काम करता है।
माइकल होमर

@MichaelHomer तो कुछ अंतर्निहित संस्करण ... मूल वाले से भिन्न हो सकते हैं? यदि मतभेद हैं, तो सभी मूल आदेशों के लिए क्या नाम है, जिसमें 'गूंज कार्यक्रम' शामिल है जैसा कि आपने उल्लेख किया है? या हम अंतर्निहित संस्करणों से उन्हें अलग करने के लिए किस शब्द का उपयोग करते हैं?
बुकसेप 4'14

1
@ बुकसे: हां, वे अलग-अलग हो सकते हैं। echoविशेष रूप से GNU में POSIX से ऊपर बहुत सारे एक्सटेंशन हैं, और बैश echoकेवल कुछ ही हैं। वास्तव में एक सामान्य नाम नहीं है जिसे मैं उन आदेशों के लिए सोच सकता हूं जो बिल्डरों द्वारा छायांकित हो सकते हैं। इतने सारे है कि आप एक आवश्यकता होगी नहीं हैं: echo, test, [, और pwdजिन्हें आप मुठभेड़ की संभावना हो रहे हैं।
माइकल होमर

@Gnouc: हाँ, commandस्पष्ट रूप से कॉल बिलिन हमेशा करता है। मुझे नहीं पता कि मैं क्या सोच रहा था, इसके अलावा zshअन्य तरीके से काम करता है।
माइकल होमर

2
"बैश को सक्षम करने के लिए कमांड का उपयोग करें" को निष्क्रिय करने के लिए, दोस्तों, ऐसा है
Braiam


8

आप echoबिल्ट-इन कमांड का उपयोग कर रहे हैं , जो --helpविकल्प को नहीं समझता है । उपयोग:

/bin/echo --help

बिल्ट-इन के लिए सहायता देखने के लिए echo, का उपयोग करें man bashऔर खोजें echo


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