Redireciona a saída do processo em segundo plano para um pager 'less' depois de terminar a execução não para o terminal padrão

4

Por padrão, se você executar um processo de segundo plano finalizado com & , como ./test & , a saída será impressa no terminal atual.
Como posso redirecionar a saída para um pager como less quando terminar de executar diferente da saída diretamente?

    
por zhenguoli 01.01.2017 / 14:48

2 respostas

4

Maneira mais simples: redirecionar a saída para um arquivo. Quando o comando terminar a execução, veja o arquivo em less .

  1. ./test.sh >test.out &
  2. less test.out

Isso também é útil em algumas circunstâncias, mesmo que o comando não seja executado em segundo plano, por exemplo, ao compilar um projeto grande:

$ make >make.out 2>make.err

ou

$ make >make.log 2>&1

Então você pode, em seu próprio tempo, passar pela saída para procurar por erros, etc. (ou enviá-lo para o desenvolvedor como parte de um relatório de bug), sem ter que rolar para cima e para baixo no seu terminal.

    
por 01.01.2017 / 15:14
2

Você pode usar isto: (./test | less) & .

Quando terminar a execução, less será pausado em segundo plano. Tudo o que você precisa fazer é usar fg para mostrar a saída de less .

Os parênteses não são obrigatórios (você pode removê-los se quiser), mas eles fazem com que o comando pareça mais limpo.

    
por 01.01.2017 / 14:57