As maravilhas do Shell Script
Pode parecer um assunto batido, mas sempre há cada vez mais pessoas procurando sobre este tipo de informação na internet. Aqui vai uma introdução básica, que visa ensinar os iniciantes sobre as maravilhas de um terminal shell aberto. O Shell Script pode parecer simples, mas é uma ferramenta poderosa para resolver problemas rápidos e práticos.
Parte 5: Controle de fluxo de execução: laços (loops)
FOR
O for cria um laço de execução enquanto uma determinada condição é verdadeira. A sintaxe dele é simples:
for((<variável>=<valor_inicial>; <condição_a_ser_testada>; <variável>++/--));
do
<comandos>
done
Para ficar mais claro, vamos ilustrar com um exemplo: eu quero um programa que imprima na tela os números de 1 a 100. O script ficará assim:
for((i=1; i <= 100; i++));
do
echo "$i"
done
do
echo "$i"
done
- i=1 quer dizer que o valor inicial da variável i vai ser 1. Lembre-se de não adicionar nenhum espaço entre a variável e o "=" e também entre o "=" e o valor a ser atribuído.
- i <= 100 quer dize que, enquanto o valor da variável "i" for menor que 100, os comandos dentro do for serão executados.
- i++ quer dizer que você está incrementando em 1 o valor da variável "i" a cada laço executado (cada vez que completa as operações dentro do for).
for <nome_da_variável> in *;
do
<comandos>
done
Isto fará com que o for itere dentro do nome dos arquivos dentro de um diretório. O valor da variável será o nome do arquivo atual.
WHILE
O while é um comando muito parecido com o for. Enquanto uma condição for verdadeira, ele executará os comandos dentro do laço. A sintaxe é assim:
while <condição>; do
<comando>1
<comando>2
<comando>n
done
Vamos ver como exemplo uma transformação do exemplo anterior. Ele estava assim:
for((i=1; i <= 100; i++));
do
echo "$i"
done
do
echo "$i"
done
Usando "while" ao invés de "for" fica assim:
i=1
while [ i -le 100 ]; do
echo "$i"
done
while [ i -le 100 ]; do
echo "$i"
done
abracos
Mlegidio