Laço de Repetição - com while e for

Publicado por Fábio Jânio em 08/03/2012

[ Hits: 23.839 ]

 


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

Replicar banco de login do Myauth 3

Pastas compartilhadas entre "host Debian" e "guest Arch" no VirtualBox

Como instalar uma impressora térmica ARGOX OS214 no Linux

Fazendo dieta no Ubuntu/Linux Mint

Existe uma distribuição Linux melhor? Como escolher?

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts