Я создаю пользовательские точечные файлы (.bash_profile
и т. П.) Для использования с терминалами OS X Terminal.app и iTerm.app.
Я хотел бы настроить некоторые параметры в зависимости от того, поддерживает ли активное приложение 256 цветов или нет. (iTerm.app поддерживает его, а Terminal.app - нет.) Это было бы возможно с помощью оператора if
(псевдокод):
if 256_COLOR_SUPPORT; then
# Make use of all available colors (iTerm.app)
else
# Fall back to 16-color mode (Terminal.app)
fi
Проблема в том, что я не знаю, как написать условие для оператора if
.
Отсюда мой вопрос: можно ли обнаружить поддержку 256 цветов? Если так, то как?
Обновление: я узнал, как определить, в каком терминальном приложении я сейчас нахожусь:
iTerm.app:
$ echo $TERM_PROGRAM
iTerm.app
Terminal.app:
$ echo $TERM_PROGRAM
Apple_Terminal
Итак, сейчас я использую следующую проверку:
if [ $TERM_PROGRAM == "iTerm.app" ]; then
# Groovy 256-color stuff
fi
Я все еще хотел бы знать, возможно ли определить количество доступных цветов в активном приложении. Я пробовал tput colors
но это кажется бесполезным, поскольку Terminal.app лжет и возвращает 256
.