Kiedy próbuję wydrukować kolorowy tekst za pomocą sekwencji ucieczki ANSI za pomocą wbudowanego echo
polecenia, wydaje się, że \e
sekwencja 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 echo
obsługuje -e
przełącznik, ponieważ poprawnie interpretuje \n
podczas 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)-release
i 3.2.48(1)-release
na moim komputerze Snow Leopard.