Exibe o texto do arquivo uma página por vez, aguarda 20 segundos e avança automaticamente

4

Esta questão é para o AIX 7

Eu tenho trabalhado em um monitor que exibirá várias páginas de texto. Inicialmente, o usuário final queria uma lista de rolagem para a qual eu construí isso:

IFS=''; cat plfeed | while read line; do echo $line; perl -e 'select(undef,undef,undef,.8)'; done

O usuário final decidiu que preferiria exibir uma página (24 linhas) de saída por um determinado período de tempo (20 segundos, por exemplo). Eu sei que mais me permitirá exibir uma página por vez, mas requer entrada de teclado que não é aceitável para o meu caso de uso.

tldr;

Como posso automatizar o comando 'more' ou criar uma função semelhante que irá dormir entre as páginas e depois avançar automaticamente?

    
por Alan 17.05.2016 / 18:57

2 respostas

5

Esse awk razoavelmente normal deve estar ok no AIX

awk '{if(NR>1 && NR%24==1)system("sleep 20");print}'

Como mencionado nos comentários, se você quiser sair em interrupção, você pode substituir o system() por

{if(system("sleep 20"))exit}

mas pode não funcionar no seu SO.

    
por 17.05.2016 / 19:49
2
#!/usr/bin/env expect 
set timeout 20
spawn -noecho man autoexpect
while 1 {
  expect {
    timeout { send " " }
    -ex "(END)" { exit }
  }
}
    
por 17.05.2016 / 19:13