Estruturas de repetição: Utilizadas quando se deseja realizar uma atividade de forma iterativa
» BASH script possui 3 estruturas de repetição:
- for
- while
- until
O laço for
Interage sobre um lista de valores
Exemplo (exercicioFor1.sh)::
#!/bin/bash
for i in 1 2 3 4 5; do
echo “Valor do i: $i “
done
Exemplo (exercicioFor2.sh):
#!/bin/bash
for i in $(seq 1 2 20); do
echo “Valor do i: $i “
done
Exemplo (exercicioFor4.sh):
#!/bin/bash
for (( c=1; c<=5; c++ )); do
echo “Valor do c: $c “
done
Exemplo (exercicioFor3.sh):
#!/bin/bash
for i in {1..5}; do
echo “Valor do i: $i “
done
O laço while
Permite executar uma lista comandos iterativamente, desde que uma précondição seja verdadeira
Exemplo (exercicioWhile.sh):
#!/bin/bash
# Este script abre 3 terminais.
i=”0″
while [ $i lt 3 ]; do
xterm &
i=$[$i+1]
done
Exemplo (exercicioWhile2.sh):
#!/bin/bash
# Copia os arquivos de um diretório para outro, de hora em hora
DIRFONTE=/home/aluno/adsis/aulas7778
DIRDESTINO=/tmp
while true; do
DATE=`date +%Y%m%d`
HOUR=`date +%H`
mkdir $DIRDESTINO/”$DATE”
while [ $HOUR ne "00" ]; do
DESTDIR=$DIRDESTINO/”$DATE”/”$HOUR”
mkdir “$DESTDIR”
mv $DIRFONTE/*.dat “$DESTDIR”/
sleep 3600
HOUR=`date +%H`
done
done
O laço until
Semelhante ao while, contudo, testa a condição no início da iteração
Exemplo(exercicioUntil1.sh)
#!/bin/bash
VAR=0
until [ $VAR eq 10 ]
do
echo $VAR
VAR=$(( $VAR + 1 ))
done
Fonte: http://m.smartdicas.com