3

Можно ли заставить GNU Screen отображать вывод произвольной команды, например, who | wc -l , в строке состояния обновлять, скажем, каждую минуту?

1 ответ1

5

Да, вы можете использовать функцию обратного удара. кавычка

Вы помещаете строку в свой файл 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} в строке состояния.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .