arquivo de log gerado dinamicamente no screenrc mostrado no status

8

Eu quero usar uma combinação da data e hora na inicialização como nome do arquivo para o arquivo de log da tela GNU. No screenrc, se eu colocar

logfile '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

Eu recebo um arquivo gerado dinamicamente, por exemplo

screen_nanna13_06062012_08:03-bash.0

Agora eu quero que a tela exiba esse nome de arquivo na barra de status. Não posso usar

hardstatus string '~/log/screen_%H_%m%d%Y_%0c-%t.%n'

porque os espaços reservados são atualizados sempre que a hora muda.

As soluções que posso encontrar envolvem um código bash executado antes da inicialização da tela, mas isso não é bom porque as janelas de tela separadas devem ter seu próprio arquivo de log dinâmico.

Existe um mecanismo de substituição de variável na tela?

thias
fonte

Respostas:

1

Eu encontrei uma solução usando o backtickcomando da tela :

backtick 1 0 0 date +%d%b%Y_%k:%M
logfile '~/log/%H_%1`-%t.%n'
hardstatus string '~/log/%H_%1`-%t.%n'

usa o comando date do UNIX para carregar a data / hora atual na variável% 1`. O único problema é que a data não muda no nome do arquivo de log, caso uma nova janela seja criada posteriormente durante a sessão (mas para mim, isso é um recurso, pois permite uma melhor identificação do arquivo de log apropriado).

thias
fonte