echolà một shell dựng sẵn trong Bash và dash ( /bin/sh). Nếu bạn chạy echotừ dòng lệnh bạn đang sử dụng nội dung Bash, nếu bạn đang chạy tập lệnh shell của mình thì shbạn đang sử dụng nội dung Dash.
Phiên bản dash của echokhông biết -etùy chọn mà chỉ xuất ra bất cứ điều gì nguyên văn mà không có bất kỳ xử lý đặc biệt nào cho \chuỗi.
Sử dụng Bash để chạy tập lệnh shell của bạn hoặc sử dụng /bin/echothay vì echo:
/bin/echo -e "\e[1;31mThis is red text\e[0m"
Để tránh các vấn đề với các phiên bản khác nhau của echobạn có thể muốn sử dụng printfthay thế. Ngược lại, echo printfluôn luôn diễn giải \các chuỗi nhưng không tự động thêm một nguồn cấp dữ liệu ở cuối, do đó bạn phải nối thêm \nvào cuối nếu bạn muốn.
Vì một số phiên bản printfkhông hiểu \ebạn nên sử dụng \033thay thế:
printf "\033[1;31mThis is red text\033[0m\n"
/bin/echovới dấu gạch ngang (/bin/sh) và bash;echovới bash hoặc./tes.shcả hai hoạt động chính xác. Mã dưới đây chỉ hoạt động vớibash. nếu [$ UID -ne 0]; sau đó lặp lại "Không phải người dùng root" khác echo "Người dùng root" fi