На экране GNU в состоянии возможно поместить условные вещи, такой как
%?%F%{+b r}%:%{+b b}%?
%F является тестом; если верный это включает полужирный красный % форматирования {+b r}, тогда как, если ложь это включает полужирный синий % форматирования {+b b}.
Условные операторы как это с %F (который тестирует на фокус) являются единственными, которые я видел в примерах .screenrc файлов или в экранном руководстве.
Что могут использоваться другие условные операторы? В руководстве говорится:
"часть к следующему '%?' отображен, только если Escape '%' в части расширяется до непустой строки", которая немного сбивает с толку. Я могу, например, изменить цвет в зависимости от времени суток или дня недели?
Спасибо
Создайте сценарий, который производит что-то, когда условие верно. Этот пример произведет пространство, когда время будет между 9:00 и 16:59.
#!/bin/bash
time=$(date +%H)
if (( time >= 9 && time <= 16 ))
then
echo " "
fi
Сохраните этот сценарий. Давайте назовем это "screenbtdaytime". Кроме того, сделайте chmod u+x screenbtdaytime
(или +x
без u
сделать его универсально исполняемым).
Для демонстрации этого используйте эту строку вместо if
выше так изменения происходит каждые 10 секунд, таким образом, Вы не должны ожидать весь день для наблюдения эффекта:
if (( $(date +%s) / 10 % 2 )) # temporary for demo
Теперь в screen
нажмите Ctrl-a и: поднять командную строку и тип в этих двух командах:
backtick 1 0 1 /path/to/screenbttime
caption always "%?%{+b by}%1`%:%{+b yb} %?%C | %D, %M %d, %Y"
Можно использовать hardstatus
вместо caption
если Вы предпочитаете, я верю.
Изменение 0
кому: 60
в backtick
команда заставит обновления произойти однажды минута, а не на уровне по умолчанию.
Это присваивает сценарий команде 1 обратной галочки (первое "1"), который используется в подписи, где Вы видите %1`
. Можно было связать другие команды с другими числами, таким образом, у Вас может быть несколько вещей, продолжающихся.
Так как сценарий производит пространство в течение назначенного времени, он инициировал условное выражение %?
который установлен на коды цвета вывода для синего текста на желтом фоне. "Еще" часть (%:
) выполняется, когда нет никакого вывода из сценария, и цвета являются желтыми на синем фоне. Дополнительное пространство включено "еще" для визуального соответствия тому, которое отображено как вывод сценария.