bash possui um comando "interno" chamado "eco":
$ type echo
echo is a shell builtin
Além disso, existe um comando "echo" que é um executável adequado (ou seja, o shell bifurca e executa /bin/echo, em vez de interpretá echo-lo e executá-lo):
$ ls -l /bin/echo
-rwxr-xr-x 1 root root 22856 Jul 21 2011 /bin/echo
O comportamento de qualquer um echo WRT de um para \ce -nvaria. Sua melhor aposta é usar printf, que está disponível em quatro diferentes sabores * NIX que eu observei:
$ printf "a line without trailing linefeed"
$ printf "a line with trailing linefeed\n"
bashno modo bourne shell, ele funciona bem aqui. Além disso, é um pouco improvável que você esteja realmente usando um shell bourne como seu shell interativo, não?