bash tiene un comando "incorporado" llamado "echo":
$ type echo
echo is a shell builtin
Además, hay un comando "echo" que es un ejecutable adecuado (es decir, las bifurcaciones y los ejecutivos de shell /bin/echo, en lugar de interpretarlo echoy ejecutarlo):
$ ls -l /bin/echo
-rwxr-xr-x 1 root root 22856 Jul 21 2011 /bin/echo
El comportamiento de cualquiera echode los WRT \cy -nvaría. Su mejor opción es usar printf, que está disponible en cuatro sabores * NIX diferentes que miré:
$ printf "a line without trailing linefeed"
$ printf "a line with trailing linefeed\n"
bashen modo shell bourne, funciona bien aquí. Además, es poco probable que realmente estés usando un shell bourne como tu shell interactivo, ¿no?