limpar em tela cheia no script e obter os prompts anteriores depois de sair do script

5

Hoje eu estava usando a ferramenta glance no meu escritório para monitorar a utilização da CPU. Quando eu executo glance do terminal, o comando limpa a tela e depois de todo o trabalho quando eu saio do terminal, os prompts anteriores ainda está lá na minha tela.Quero dizer que eu posso ver todas as linhas anteriores.Minha pergunta é como é que este efeito de compensação tela foi alcançado.Se eles tinham usado o comando como clear , deveria ter limpado a tela inteira, como é que eles consegue recuperar todos os prompts anteriores? Eu quero implementar o mesmo recurso para alguns dos meus scripts.

Da mesma forma, ao usar o comando vi , a tela fica totalmente ocupada e, depois de sair, também podemos ver os prompts anteriores.

    
por g4ur4v 12.03.2013 / 17:26

1 resposta

5

Muitos emuladores de terminal mantêm duas cópias da saída do terminal: o buffer de tela normal e o buffer de tela alternativo. O buffer normal é para aplicativos de linha de comando que normalmente não movem o cursor para fora da linha atual e fornecem rolagem. O buffer alternativo é para aplicativos de tela inteira e não fornece rolagem.

Glance, vi e outros alternam para a tela alternativa quando eles começam e voltam quando eles saem.

No xterm, você pode ver a tela não atual alternando “Show Alternate Screen” no menu do botão do meio do mouse.

De um script, você pode obter a seqüência de controle para alternar entre as telas com tput smcup e tput rmcup ( smcup e rmcup são as terminfo para entrar e sair do modo de tela cheia).

    
por 12.03.2013 / 23:23

Tags