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


Responder a