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]; तब गूंज "नॉट रूट यूजर" बाकी गूंज "रूट यूजर" फाई