Kiedy próbuję wydrukować kolorowy tekst za pomocą sekwencji ucieczki ANSI za pomocą wbudowanego echopolecenia, wydaje się, że \esekwencja ucieczki w ciągu, który podam, jest interpretowana dosłownie zamiast jako „ucieczka”, którą ma reprezentować. Dzieje się tak tylko w systemie Snow Leopard - poniższe przykłady działają zgodnie z przeznaczeniem w systemie Leopard.
Najwyraźniej echoobsługuje -eprzełącznik, ponieważ poprawnie interpretuje \npodczas używania:
~ $
~ $ echo "\n"
\n
~ $ echo -e "\n"
~ $
Ale kiedy próbuję użyć \e, otrzymuję to:
~ $ echo -e "\e[34mCOLORS"
\e[34mCOLORS
~ $
Tak jak mówiłem, u Leoparda powyższe oznaczałoby kolor sznurka „KOLORY”.
Czy ktoś zna powód, dla którego może to być zamierzona zmiana? A co z obejściem drukowania sekwencji ucieczkowych ANSI ze skryptów Bash na Snow Leopard?
Wersja powłoki bash na moim komputerze Leopard jest 3.2.17(1)-releasei 3.2.48(1)-releasena moim komputerze Snow Leopard.