Página Inicial Shell Script Comando para repetição de código (while / until / for)

Comando para repetição de código (while / until / for)

Dando sequência a algumas postagens efetuadas a algum tempo, vamos falar sobre “loops” ou repetição de código na programação em shell script Unix/Linux.

Nas postagens anteriores, demos uma introdução ao shell script, falamos da criação de funções em shell e falamos de desvio condicional e com isso esta postagem encerra a sequencia da estrutura de controle de fluxo em shell script.

Comando while

O comando “while” com em outras linguagens de software executa um bloco de código enquanto sua condição for verdadeira.

Ex:

1
2
3
while <condição>;do
    bloco de código/ comando...
done

Vejamos um exemplo prático.

1
2
3
4
5
#!/bin/bash

while true;do
    echo "O velho e bom, Hello World!!!"
done
1
2
3
4
5
6
7
8
#!/bin/bash

name="Nação Livre"

while [ "$name" = "Nação Livre" ];do
    echo "Mundo open source !!!"
    echo "Eu adoro programar !!!"
done
1
2
3
4
5
6
7
#!/bin/bash

while ( $# != 0 ); do
    if [ "$1" = "create-file" ];then
        touch "criando-um-arquivo.txt"
    fi
done

Comando until

O comando “until” ao contrário do comando while, executa um bloco de código enquanto sua expressão condicional for falsa.

1
2
3
until <condição>;do
    bloco de código/ comando...
done
1
2
3
4
5
6
7
8
9
10
11
#!/bin/bash

response=yes

until ["$response" = "no"];do
    echo "Entre com um endereço de e-mail: "
    read email
    echo "$email" &gt;&gt; list-mail.txt
    echo "Deseja inserir mais e-mails a lista? [yes|no]"
    read response
done

Comando for

O comando “for” executa um laço de repetição em uma lista enquanto ouver itens para a iteração.

1
2
3
for<iteração> in <lista>;do
    bloco de código/ comando...
done
1
2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash

#
# Lista os Bancos disponiveis
#
mysql_user="root"
mysql_password="minha-senha"

sql_database=$(mysql -u$mysql_user -hlocalhost -p$mysql_password -Bse 'SHOW DATABASES WHERE `database` != "information_schema" AND `database` != "mysql"')

for db in ${sql_database}; do
    mysqldump --databases $db -hlocalhost -u$mysql_user -p$mysql_password --hex-blob &gt; /backup/database/sql-$db.sql
done

1 – Criando Programas Shell Script/Introdução.

2 – Criando Funções no Shell Script.

3 – Desvio Condicional em Shell Script.

4 – Comando para repetição de código (while / until / for).

5 – Comandos Úteis para Para Shell script.

6 – Sinais ou Traps do sistema.

7 – Exemplos Úteis.

Categories: Shell Script Tags: , , ,
  1. Gabriel
    30, janeiro, 2013 em 13:50 | #1

    O 3º exemplo que vcs deram sobre While não da certo.

    exemplo correto de while..

    #!/bin/bash

    while [ $# = 1 ]; do
    if [ “$1″ = “file” ];then
    touch “criando-um-arquivo.txt”
    fi
    done

  2. Fernando
    2, fevereiro, 2013 em 09:51 | #2

    Olá Gabriel,

    Bom, se escreveu o código exatamente como está aqui no comentário, com certeza não irá funcionar! “if [ $# = 1 ]; then” entre o ponto e virgula e a palavra reservada then existe um espaço.

  1. Nenhum trackback ainda.

Deixe seu Comentário !