echoबैश और डैश ( /bin/sh) में निर्मित शेल है । यदि आप echoकमांड लाइन से भागते हैं तो आप बैश बिलिन का उपयोग कर रहे हैं, यदि आप अपने शेल स्क्रिप्ट को अपने साथ चला shरहे हैं तो डैश डैश का उपयोग कर रहे हैं।
डैश संस्करण का विकल्प echoनहीं पता है, -eलेकिन \सिक्वेंस के लिए किसी भी विशेष हैंडलिंग के बिना बस कुछ भी शब्दशः आउटपुट करता है ।
या तो अपने शेल स्क्रिप्ट को चलाने के लिए बैश का उपयोग करें, या /bin/echoइसके बजाय का उपयोग करें echo:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
echoआप के printfबजाय विभिन्न संस्करणों के साथ समस्याओं से बचने के लिए उपयोग करना चाहते हो सकता है । echo printfहमेशा \दृश्यों की व्याख्या करने के विपरीत, लेकिन स्वचालित रूप से अंत में एक लाइनफीड नहीं जोड़ता है, इसलिए \nयदि आप एक चाहते हैं तो आपको अंत में जोड़ना होगा ।
कुछ संस्करणों के रूप में आपको इसके बजाय उपयोग printfनहीं \eकरना चाहिए \033:
printf "\033[1;31mThis is red text\033[0m\n"
/bin/echoपानी का छींटा (/bin/sh) और मार के साथ;echoबैश के साथ या./tes.shदोनों सही ढंग से काम करता है। नीचे दिए गए कोड के साथbashही काम करता है अगर [$ UID -ne 0]; तब गूंज "नॉट रूट यूजर" बाकी गूंज "रूट यूजर" फाई