Conjunto de comandos agrupados em um bloco, que recebe um nome e através deste, pode ser ativado.
Por que utilizar funções?
Para permitir o reaproveitamento de código já construído (por você ou por outros programadores);
Para evitar que um trecho de código que seja repetido várias vezes dentro de um mesmo programa;
Para permitir a alteração de um trecho de código de uma forma mais rápida. Com o uso de uma função é preciso alterar apenas dentro da função que se deseja;
Para que os blocos do programa não fiquem grandes demais e, por consequência, mais difíceis de entender;
Para facilitar a leitura do programa-fonte de uma forma mais fácil;
Para separar o programa em partes (blocos) que possam ser logicamente compreendidos de forma isolada.[4]
A estrutura básica de uma função em Shell Script, é:
funcao ()
{
}
E a chamada feita no código, é digitando o nome da mesma:
funcao
Dentro de um script. Declare primeiro as funções, ao invés de fazer isso no final, caso contrário, irá apresentar erros.
Alguns exemplos de funções:
Algoritmo 016:
#!/bin/bash
#Autor: k666
#Data: 21/01/2013
#Algoritmo que calcula a raiz quadrada
#O cálculo trata-se de número exatos por exemplo: raiz quadrada
#de 4 é 2: 16 é 4. O Shell, por si só, não calcula valores
#de ponto flutuante a não ser que haja interação com a calculadora
#bc como já visto em outros algoritmos
raiz()
{
echo "Digite um número: "
read num
#Iniciando o contador com 1 pois não existe divisão por zero
i=1
while [ $i -lt $num ]
do
#Variável calc significa cálculo e calc2, cálculo2
#A variável calc fará a divisão do número passado pelo
#usuário e o contador. Em seguida este valor será multiplicado
#por ele mesmo na variável calc2.
calc=$(($num / $i))
calc2=$(($calc * $calc ))
#Aqui é realizado o teste que caso seja verdadeiro a
#condição $calc2 for igual a $num, haverá uma interrupção
#no loop (com o comando break) e será mostrado o comando
#echo logo abaixo
if [ $calc2 -eq $num ]
then
break
fi
i=$(($i + 1))
done
echo "A raiz quadrada de $num é: $calc"
}
raiz
Algoritmo 017:
#!/bin/bash
#Autor: k666
#Data: 27/01/2013
#Algoritmo utilizado para criar, alterar e apagar
#contas de usuário do sistema Linux
[3] Comentário enviado por wagnerfs em 20/06/2014 - 09:38h
Obrigado pessoal pelo incentivo. Acompanhem também os exercícios práticos para LPI que semanalmente posto aqui no VOL. Em breve estarei disponibilizando novos artigos.
[8] Comentário enviado por removido em 21/06/2014 - 15:19h
Muito bom,espalhando conhecimento!Quando eu pegar mais as manhas do linux e unix também pretendo postar umas dicas aqui.Estou estudando C e shellScript também,foi de grande ajuda.
[10] Comentário enviado por removido em 24/06/2014 - 10:43h
Muito bom seu artigo! Estou iniciando em shellscript e foi de grande proveito este artigo. Escreve muito bem e a bibliografia que utilizou também é muito boa.
Poderia me dizer onde se encontra estes exercícios para a LPI?
Um grande abraço!
[14] Comentário enviado por cleciosc em 30/09/2014 - 20:48h
Excelente artigo.
Ps.: Após apresentada a formula ( F=(9*C+160) / 5 ), o calculo efetuado no script está incorreto, fah=$((9*$cel+160)). Faltou a divisão por 5, ou seja, estaria apresentando um cálculo errado no meu script.
Só foi uma observação principalmente para aqueles que estão acostumados com as teclas CTRL+C e CTRL+V.