Porque aparentemente Mac OS es uno de los sistemas que responde a la opción xpg_echo
cuando se ejecuta en modo POSIX. Ejecutar bash como / bin / sh es equivalente a ejecutar con --posix
o establecer POSIXLY_CORRECT.
La solución es dejar de usar echo
, excepto en los casos en que no puede haber ambigüedad. printf
es el reemplazo portátil. Nunca use los indicadores de opción para hacer eco, (y use printf
si lo hace).
Hay varias implementaciones históricas incompatibles de echo
que rompen su especificación de una manera que no se puede arreglar, y las marcas de opción por lo tanto no son portátiles. No conozco nada de lo que actualmente implementa POSIX echo
correctamente.
shopt -u xpg_echo
debería modificar este comportamiento. Además, como ya descubrió, no se está ejecutando en modo POSIX.
También es posible que desee actualizar ... bash 3 se está poniendo un poco crujiente. Muchos errores han sido corregidos desde.