terça-feira, 16 de setembro de 2014

Shell script: Estruturas de repetição


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/aulas77­78
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