Создайте сценарий, который выводит что-то, когда условие выполняется. Этот пример выведет пробел, когда время между 9 утра и 4: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
обновления будут выполняться раз в минуту, а не по умолчанию.
Это назначает сценарий команде backtick 1 (первая "1"), которая используется в заголовке, где вы видите %1`
. У вас могут быть другие команды, связанные с другими номерами, чтобы вы могли выполнять несколько действий.
Поскольку сценарий выводит пробел в течение назначенного времени, он запускает условный %?
который установлен для вывода цветовых кодов для синего текста на желтом фоне. Часть "else" (%:
:) выполняется, когда сценарий не выводится, а желтый цвет отображается на синем фоне. В "else" добавляется дополнительный пробел, чтобы визуально соответствовать тому, который отображается как вывод скрипта.