/ bin / sh - это версия bash (не оболочки Bourne) на OS X. Она активирована в режиме POSIX и имеет несколько других изменений . Один из них заключается в том, что опция оболочки xpg_echo включена по умолчанию, так что встроенное эхо соответствует POSIX.
http://pubs.opengroup.org/onlinepubs/009696799/utilities/echo. html :
Реализации не должны поддерживать какие-либо опции
blockquote>http://www.gnu.org/software/bash/ manual / bash.html # Bash-POSIX-Mode :
44. Когда опция xpg_echo включена, Bash не пытается интерпретировать любые аргументы для эха в качестве параметров. Каждый аргумент отображается после преобразования управляющих символов.
[...]
Как уже отмечалось выше, Bash требует, чтобы параметр xpg_echo был включен, чтобы встроенный echo был полностью совместим .
blockquote>Вы можете отключить xpg_echo, использовать / bin / echo или, желательно, просто использовать printf:
sh -c 'shopt -u xpg_echo; echo -n aa' sh -c '/bin/echo -n aa' sh -c 'printf %s aa'