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
-
$0
especifica a linha atual. e o1
on end ativa o comando print do padrãoawk
.