usando a tela para dividir o terminal

0

Em um script bash , quero mostrar ao usuário um arquivo com less , mas não quero que less ocupe todo o terminal: preciso manter algumas informações visíveis no terminal enquanto o usuário navega no arquivo com less .

Eu pesquisei por terminal split linux e todos os resultados se referem ao comando screen .

Depois de várias horas de tentativas e erros, acredito que eu tenha encontrado uma solução que funcione principalmente. Eu criei um arquivo screen.rc contendo:

split
screen 1 less /etc/passwd
focus down
resize 10
screen 2
exec !.. echo Informations area
focus up

Agora, no meu script bash , posso executar

screen -c screen.rc

e cria um terminal dividido com less /etc/passwd output na região superior e Information area na parte inferior e a região superior está recebendo entrada do usuário, que é exatamente o comportamento desejado. Quase perfeito, exceto quando o usuário atinge q para finalizar less , screen não termina, porque ainda há um shell em execução na região inferior. O usuário agora precisa focar a região inferior (CTRL + uma TAB) e pressionar Ctrl + d para finalizar a execução bash .

Portanto, a sequência para sair do meu visualizador de arquivos personalizado less agora se tornou q CTRL+a TAB CTRL+d : um monte de pressionamentos de teclas apenas para sair de um visualizador de arquivos de texto ...

Como posso fazer screen terminar imediatamente quando o comando top region less é encerrado?

    
por Lucio Crusca 09.05.2018 / 00:59

1 resposta

1

Enviar o comando quit dirá a tela para sair, então substitua o comando less por:

screen 1 sh -c 'less /etc/passwd ; screen -S "${STY}" -X quit'

ou algo nesse sentido.

    
por 09.05.2018 / 01:14

Tags