Laço de Repetição - com while e for
Laço de Repetição, quando são utilizados e para que servem?
Existem tarefas que são cansativas de serem realizadas por procedimentos manuais.
Se você quer um exemplo, aqui vai, renomear 2 mil arquivos em ordem numérica (1, 2, 3...). Se eu tivesse que renomear manualmente estes 2 mil arquivos, passaria o dia todo fazendo isso.
Mas, se eu automatizar este processo criando um laço de repetição, deixo o computador trabalhar por mim.
- Criando o laço de repetição com 'for'
O comando para criar este laço é:
x=1; for i in *; do mv $i $x; x=$((x+1)); echo $x ; done
Interpretando:
No primeiro momento, 'x=1', estou definindo que a variável 'x' será igual à 1 e que ';', está separando as instruções.
'for i in *' é nosso laço propriamente dito, onde 'i' armazena o nome dos arquivos e '*', considera todos os arquivos do diretório. 'mv $i $x' renomeia os arquivos do nome atual '$i' para o valor armazenado em '$x' que inicialmente é 1. 'x=$((x+1))', aqui
somo mais 1 ao valor atual de '$x'. 'echo $x' imprimo os valores de '$x'.
Se você estiver renomeando arquivos “.jpg”, será importante manter a extensão após o processo de mudança de
nome. Então basta fazer isso:
x=1; for i in *; do mv $i $x.jpg; x=$((x+1)); echo $x ; done
Você pode ainda mudar o primeiro valor de 'x=1', caso queira renomear contando de um determinado valor, como
por exemplo: x=100.
- Laço de repetição com 'while'
Mostrarei a seguir, um outro procedimento de Loop simples.
x=0; while true; do clear; echo Total de listagens $x; x=$((x+1)); ls -l; sleep 3; clear; done
Aqui tenho um processo de Loop infinito, que tem como objetivo, imprimir o valor de 'x$', que inicialmente é zero.
Depois somar 1 ao valor atual de '$x', fazer uma listagem 'ls -l', aguardar 3 segundos 'sleep 3' e limpar a tela 'clear',
na sequência o comando é repetido.
Vamos à outra variação do 'while':
x=0; while [ $x -lt 3 ]; do clear; echo Total de listagens $x; x=$((x+1)); ls -l; sleep 3; clear;
done
Aqui temos o seguinte: '[ $x -lt 3 ]', ou seja, execute este laço enquanto '$x' for menor que '3'.
Espero que gostem desta pequena publicação.
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada
Instalação do MySQL no Fedora Linux
Convertendo RMBV para DivX com mencoder
Para iniciantes que ainda precisam de um por quê migrar para o Linux
Guia das distribuições Linux - Linha do tempo
Escolhendo sua distribuição Linux
Comentários
Nenhum comentário foi encontrado.