echoเป็นตัวเชลล์ใน Bash และ Dash ( /bin/sh) หากคุณเรียกใช้echoจากบรรทัดคำสั่งคุณกำลังใช้ Bash builtin หากคุณใช้งานเชลล์สคริปต์ด้วยขณะที่shคุณกำลังใช้ Dash builtin
รุ่น dash ของechoไม่รู้-eตัวเลือก แต่เพียงแค่เอาท์พุทคำต่อคำใด ๆ โดยไม่ต้องจัดการพิเศษสำหรับ\ลำดับ
ใช้ Bash เพื่อรันเชลล์สคริปต์ของคุณหรือใช้/bin/echoแทนecho:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
เพื่อหลีกเลี่ยงปัญหาเกี่ยวกับเวอร์ชั่นต่าง ๆ ที่echoคุณอาจต้องการใช้printfแทน ตรงกันข้ามกับecho printfการตีความ\ลำดับเสมอแต่ไม่ได้เพิ่ม linefeed อัตโนมัติในตอนท้ายดังนั้นคุณต้องผนวก\nท้ายถ้าคุณต้องการ
เนื่องจากบางรุ่นprintfไม่เข้าใจ\eคุณควรใช้\033แทน:
printf "\033[1;31mThis is red text\033[0m\n"
/bin/echoด้วยเส้นประ (/bin/sh) และทุบตี;echoด้วย bash หรือ./tes.shทั้งสองทำงานอย่างถูกต้อง รหัสด้านล่างใช้ได้กับbashเท่านั้น ถ้า [$ UID -ne 0]; จากนั้น echo "ไม่ใช่ผู้ใช้รูท" และ echo "ผู้ใช้รูท" fi