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.
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?
Tags gnu-screen