Я думал здесь, что основная проблема при выполнении watch
, аргумент дан"sh -c
"что означает если псевдоним ll
не определяется в sh(dash shell's)
среда затем это не развернет его. Но я был неправ и дело обстоит не так, ответ Chris выше является правильным.
Значение $TERM
не дает много информации о количестве поддерживаемых цветов. Много терминалов рекламируют себя как xterm
, и мог бы поддерживать любое количество цветов (2, 8, 16, 88 и 256 общие ценности).
Можно запросить значение каждого цвета с OSC 4 ; c ; ? BEL
управляющая последовательность. Если номер цвета c
поддерживается, и если терминал поймет эту управляющую последовательность, то терминал будет огрызаться со значением цвета. Если номер цвета не поддерживается или если терминал не понимает эту управляющую последовательность, терминал ни на что не отвечает. Вот bash/zsh отрывок, чтобы запросить, поддерживается ли цвет 42 (перенаправление к/от терминалу при необходимости):
printf '\e]4;%d;?\a' 42
if read -d $'\a' -s -t 1; then … # color 42 is supported
Среди популярных терминалов xterm и терминалов на основе библиотеки VTE (терминал Gnome, Терминатор, Xfce4-терминал, …) поддерживают эту управляющую последовательность; rxvt, консоль, экран и tmux не делают.
Я не знаю о более прямом пути.
Существует сценарий жемчуга, 256colors2.pl, который отобразит все цвета на Вашем терминале.
Вы можете использовать
$ tput colors
На моей установке debian tput входит в пакет ncurses-bin
, который устанавливается по умолчанию.
read -d $'\a' -s -t 1
? вход – Amelio Vazquez-Reina 02.11.2011, 00:50\a
(символ звонковой сигнализации), не повторяя вход, с тайм-аутом 1 секунды. – Gilles 'SO- stop being evil' 02.11.2011, 00:55tput colors
запрашивает terminfo базу данных. Возможности состоят в том, что Вы имеетеTERM=xterm
. Xterm может поддерживать по крайней мере 2, 8, 16, 88 или 256 цветов в зависимости от версии и на компиляции - и опции во время выполнения, но terminfo база данных может только сохранить одно значение. Можно установить, например.TERM=xterm+256color
, но затем Вы будете раздражаться, когда Вы войдете в систему машины, которая не имеет этой записи в ее termcap/terminfo базе данных. – Gilles 'SO- stop being evil' 02.11.2011, 13:59printf … >/dev/tty
) и затем читайте из терминала (read … </dev/tty
). Xterm отвечает наOSC 4; …; ? BEL
последовательность путем введения нажатий клавиш. – Gilles 'SO- stop being evil' 24.02.2012, 17:01