Você pode usar os comandos sleep e clear no seu script da seguinte forma:
for word in $(< read)
do
echo "$word"
sleep 1
clear
done
Explicação:
O comando sleep faz atraso por um período de tempo especificado (em segundos). Com sleep 1 , o atraso seria de 1 segundo. Você pode mudar para mais tempo retardando o segundo parâmetro ou para atrasar menos de 1 segundo dividindo-o em unidades baixas; Como sleep .1 para atraso de 1/10 segundos ou sleep .001 para atraso de 1/1000 segundos e etc.
O comando clear limpa a tela do terminal.
Melhor ainda, você pode fazer isso abaixo do comando awk :
awk '{i=1; while(i<=NF){ print $((i++)); system("sleep 1; clear") }}' read
Explicação:
Em awk , o NF especifica o número total de campos no registro / linha de entrada atual, portanto, usando uma variável como um contador ( i ) e fazendo um loop sobre ele , estamos imprimindo todos eles da primeira posição até o final deles ( NF ). Então, usando a parte system("sleep 1; clear") , estamos dizendo a awk para chamar os comandos do sistema para dormir por 1 segundo e limpar a tela.
Acima, estamos exibindo o arquivo de entrada como palavra por palavra. Se você for exibir linha por linha, adicione IFS=$'\n' no script como:
IFS=$'\n'
for word in $(< read)
do
echo "$word"
sleep 1
clear
done
E altere o comando awk como:
awk '{ $0; system("sleep 1; clear") }1' read
-
$0especifica a linha atual. e o1on end ativa o comando print do padrãoawk.