On Wed, 2004-07-28 at 15:42, Pepe Aracil wrote: > El otro dia me estuve peleando con el comando echo para imprimir la > cadena "-e" y nada que no hay manera. [...] > Esto es claramente un bug del comando echo y parece mentira que esto no > esté solucionado... o ¿Habre sido Yo el primero en darme cuenta?
Je. No, eso no es un bug en echo. Es un comportamiento extraño, pero es por diseño y está documentado. Ve el manual builtins(7) (estoy asumiendo que estás usando el echo incluido en bash, no /bin/echo). Antes que otra cosa, nota que tus experimentos con las comillas no hacen ninguna diferencia para echo. Las comillas las procesa y las elimina el shell antes de ejecutar el comando (ve bash(1) para más detalles). La manera de hacer lo que quieres habría sido, normalmente, usar "--" para indicar el fin de las opciones, de manera similar a esto: echo -- -e Sin embargo, el manual dice específicamente "echo does not interpret -- to mean the end of options". No tengo idea de porqué funciona así, pero me imagino que es por compatibilidad con UNIX o con POSIX. Así pues, usar los escapes activados por -e es, en efecto, la única manera de hacer que echo imprima exactamente "-e". Como alternativas, si no te importa meter un espacio de mas, puedes hacer echo ' -e' echo '-e ' con los resultados que cabría esperar. O puedes simplemente usar printf -- -e Salud. -CR