Tela GNU: executa um comando arbitrário na barra de status?

3

É possível fazer com que o GNU Screen exiba a saída de um comando arbitrário, por exemplo, who | wc -l , na barra de status, atualizando-o, digamos, a cada minuto?

    
por MaxB 12.05.2013 / 23:46

1 resposta

5

Sim, você pode usar o recurso de backtick. Backtick

Você coloca uma linha no seu arquivo screenrc:

backtick 1 0 5 /bin/date

Se eu entendi corretamente, isso significa o id de backtick 1, que executa o comando /bin/date , produz uma saída válida por 0 segundos e a legenda / hardstatus deve ser atualizada a cada 5 segundos.

Agora, você pode usar a string %1' dentro do seu hardstatus para substituição, por exemplo

hardstatus alwayslastline "date output: %1'"

No seu caso, acho que você terá que escrever um roteiro. Por exemplo, $HOME/my_script.sh :

#!/bin/bash
who | wc -l

No seu ~/.screenrc :

backtick 1 0 60 $HOME/my_script.sh
hardstatus alwayslastline "who|wc -l output: %1'"

Obviamente, você não vai querer exatamente isso, mas apenas adicione %1' ao que quer que você tenha. Observe que a saída do seu script não pode incluir escapes de string para que a tela expanda, por exemplo Se o seu script for echo "%{bg}blue on green%{dd}" , ele não será colorido, você verá apenas ${bg} e ${dd} na sua linha de status.

    
por 21.05.2013 / 16:29

Tags