Можно ли заставить GNU Screen отображать вывод произвольной команды, например, who | wc -l
, в строке состояния обновлять, скажем, каждую минуту?
1 ответ
Да, вы можете использовать функцию обратного удара. кавычка
Вы помещаете строку в свой файл screenrc:
backtick 1 0 5 /bin/date
Если я правильно понимаю, это означает, что идентификатор обратного удара 1, который запускает команду /bin/date
, выдает вывод, действительный в течение 0 секунд, и заголовок /hardstatus должен обновляться каждые 5 секунд.
Теперь вы можете использовать строку %1`
внутри вашего hardstatus для замены, например
hardstatus alwayslastline "date output: %1`"
В вашем случае, я думаю, вам придется написать сценарий. Например, $HOME/my_script.sh
:
#!/bin/bash
who | wc -l
В вашем ~/.screenrc
:
backtick 1 0 60 $HOME/my_script.sh
hardstatus alwayslastline "who|wc -l output: %1`"
Очевидно, что вы этого не захотите, но просто добавьте %1`
к тому, что у вас есть. Обратите внимание, что ваш вывод скрипта не может включать в себя экранирование строк для расширения экрана, например, если ваш скрипт echo "%{bg}blue on green%{dd}"
он не будет окрашен, вы просто увидите ${bg}
и ${dd}
в строке состояния.