Mam skrypt powłoki, który używa następującego polecenia do wydrukowania zielonego znacznika wyboru w danych wyjściowych:
col_green="\e[32;01m"
col_reset="\e[39;49;00m"
echo -e "Done ${col_green}✓${col_reset}"
Po przeczytaniu o cytowaniu ANSI-C Basha , zdałem sobie sprawę, że mogę go użyć do ustawienia zmiennych kolorów i usunięcia -e
flagi z mojego echa .
col_green=$'\e[32;01m'
col_reset=$'\e[39;49;00m'
echo "Done ${col_green}✓${col_reset}"
Wydaje się to atrakcyjne, ponieważ oznacza, że wiadomość jest drukowana poprawnie, niezależnie od tego, czy jest przekazywana do wbudowanego echa Basha, czy do zewnętrznego urządzenia /bin/echo
(jestem na macOS).
Ale czy to sprawia, że skrypt jest mniej przenośny? Wiem, że Bash i Zsh obsługują ten styl cytowania, ale nie jestem pewien co do innych.