Você está na página 1de 5

comandos_repeticao(loop)

Comandos de repetio (loop)

for (para) No shell do Linux existe dois tipos de for: for (lista de valores) executado um comando para cada item da lista de valores, onde em cada linha a varivel recebe o valor de cada item da lista. Sintaxe:

for variavel in lista de valores do comandos done Exemplo: No abaixo criada uma varivel recebe o valor de cada item da lista de valores

#!/bin/bash for variavel in 1 2 3 do echo "os itens da lista so: $variavel" done

for (valor inicial, teste condicional, valor incremental) dividido em trs partes separados por ponto e vrgula " ; ", onde o valor inicial executado apenas uma vez antes do teste condicional, caso o teste condicional seja verdadeiro, incrementado de um 1 ao valor da varivel e os comandos aps as trs partes depois dos parnteses e chaves sero executados e assim por diante. Caso o teste lgico seja falso, o comando for interrompido.

Sintaxe: for((variavel=valor inicial; variavel teste lgico; variavel valor incremental)) { comandos }

comandos_repeticao(loop)

Exemplo: No exemplo abaixo a varivel x inicia com o valor inicial 0, aps isso feito um teste lgico verificando se o valor da varivel x menor ou igual a 10, caso seja verdadeiro, incrementado de um 1 a mais no valor da varivel, caso contrrio o comando for interrompido. A execuo de cada linha do comando for feito linha por linha como mostra a tabela abaixo:

For 1 linha 2 linha 3 linha ... 10 linha 0 1 2 ... 10

Sada de cada linha de comando

#!/bin/bash for((x=0; x <=10; x++)) { echo "os valores da lista so: $x" }

while (enquanto)

O comando while que no portugus quer dizer enquanto, executa os comandos enquanto o teste condicional entre colchetes for verdadeira, caso seja falso, o comando while interrompido.

Sintaxe: while teste condicional do

comandos_repeticao(loop)

comandos done

Exemplo 1:

No exemplo abaixo a varivel x inicia com o valor inicial 0, aps isso feito um teste lgico verificando se o valor da varivel x menor ou igual a 10, caso seja verdadeiro, incrementado de um 1 a mais no valor da varivel, caso contrrio o comando while interrompido. A execuo de cada linha do comando while feito linha por linha como mostra a tabela abaixo:

While 1 linha 2 linha 3 linha ... 10 linha 0 1 2 ... 10

Sada de cada linha de comando

#!/bin/bash x=0 while [ $x -le 10 ]; do echo "os valores da lista so: $x" x=`expr $x + 1` done

Exemplo 2: No exemplo abaixo criado um loop de repetio infinito, pois o valor da varivel x sempre ser maior que 0 e incrementado de 1 o valor da varivel x.

comandos_repeticao(loop)

#!/bin/bash x=10 while [ $x -gt 0 ] do x=`expr $x + 1` echo "infinito $x" done

Exemplo 3: No exemplo abaixo criado um loop de repetio infinito enquanto o teste condicional for verdadeiro (true) e incrementado de 1 o valor da varivel x.

#!/bin/bash while true do x=`expr $x + 1` echo "infinito $x" done

until (at que)

O comando until que no portugus quer dizer at que idntico ao comando while , executa os comandos enquanto a expresso for verdadeira, mas com uma nica diferena, a expresso analisada da direita para a esquerda.

Sintaxe:

until teste condicional do comandos done

Exemplo 1:

comandos_repeticao(loop)

No exemplo abaixo a varivel x inicia com o valor inicial 0, aps isso feito um teste lgico na expresso onde analisada da direita para a esquerda verificando se o nmero 10 maior que a varivel x, caso seja verdadeiro, incrementado de um 1 a mais no valor da varivel, caso contrrio o comando until interrompido.

A execuo de cada linha do comando until feito linha por linha como mostra a tabela abaixo:

Until 1 linha 2 linha 3 linha ... 10 linha 0 1 2 ... 10

Sada de cada linha de comando

#!/bin/bash x=0 until [ $x -gt 10 ]; do echo "os valores da lista so: $x" x=`expr $x + 1` done

Exemplo 2: No exemplo abaixo criado um loop de repetio infinito, pois 0 sempre ser menor que 10 e incrementado de 1 o valor da varivel x. A diferena entre until e while, que a expresso analisada da direita para a esquerda verificando se o nmero 0 menor que 10.

#!/bin/bash numero=10 until [ $numero -lt 0 ] do x=`expr $x + 1` echo "infinito $x" done

Você também pode gostar