Eu uso less para visualizar a saída de texto de um comando que contém informações confidenciais. Menos é bom para isso, pois usa uma tela alternativa e a limpa após o uso. Eu gostaria que a sessão less fosse encerrada após um curto período de tempo, digamos 5 minutos.
Existe alguma maneira simples de linha de comando para invocar menos com texto canalizado e encerrar automaticamente após, digamos, 5 minutos?
Supondo que você tenha GNU coreutils, uma abordagem um tanto simples é substituir
less
portimeout --foreground 600 less; printf '\033[?47h'; clear; printf '\033[?1049l'; stty cooked echo
em tais comandos confidenciais. Otimeout
comando mata um processo após uma determinada duração, o--foreground
switch permiteless
usar o TTY estty cooked echo
corrige o terminal após matarless
. No caso de matarless
impedir a limpeza e saída da tela alternativa, os comandos intervenientes fazem isso.As sequências de escape usadas nos
printf
comandos são apropriadas para um terminal (emulador) compatível com DEC, como o Xterm. Seu terminal específico pode usar sequências diferentes para realizar esta tarefa.Uma função simples:
pode resultar em substancialmente menos digitação.
Obrigado @meuh por apontar que a versão original pode não limpar ou sair da tela alternativa.
Editado para permitir
tless some-file
. Além disso, esta versão foi testada em Linux e Solaris 11.