Возможно, это для Linux (хотя OSX добавляет интересный поворот, изменяя роли bash
и echo
).
Линукс /bin/echo
имеет -e
вариант, который расширяет побеги сорта вы показываете, в то время как некоторые оболочки (такие как dash
, используемых в Debian) следует POSIX более внимательно, и не делать этого. Программа find
действует так, как будто она запускает /bin/sh
, что может не быть вашей реальной оболочкой. Debian использует dash
как /bin/sh
.
Аналогично, более старые версии bash (мой локальный OSX-сервер с 3.2.53) не поддерживают параметр -e
, в то время как более новые (проверяя мой локальный Debian с 4.1.5) поддерживают опцию -e
.
Поскольку все такое поведение является нестандартным, обычная рекомендация использовать printf
утилиту, которая также обеспечивает нестандартные функции на Linux, но те части, которые вы потребность будет достаточно портативный:
somethingRegex | xargs -I {} sh -c 'printf "found \033[34m{}\033[39m";dummy {}'
Спасибо, что работает. +1 для справочной информации. – janw