Como posso usar menos com os seguintes requisitos?
- Quero usar menos e rolar para cima e para baixo com as teclas de seta.
- Se toda a saída couber na tela, menos deverá sair automaticamente.
- Quando eu digito algo e pressiono Enter, less deve sair, e a entrada deve ser passada para leitura ou para uma variável, para que eu possa processá-la.
- Não quero usar
:q
, Ctrl- Cou comandos similares para sair.
Por exemplo, eu corro lsblk | less
e quero inserir um nome de dispositivo como sdx, que deve ser passado para uma variável para processamento posterior. Isso é possível? Gostaria de uma solução.
Chamando
less
por aquileva a esta situação de descritor de arquivo:
Quando não há mais nenhuma entrada,
/dev/stdin
eleless
lê seus comandos do/dev/fd/3
terminal de controle.Não consegui fazer um demonstrador rapidamente, mas acho que teria que ser algo assim:
less
do terminal de controle (ou seja, impedir que ele o abra). Isso pode ser feito comnohup
socat
screen
tmux
less
em segundo plano e ative-o comkill -CONT
less
você mesmo o terminal de controle ("real", não o de ). Passe apenas a tecla de seta paraless
\n
do ctty então killless
(kill -TERM
) e sai do script wrapper