As funções são uma forma de inserir pequenos subscripts em um script. Como scripts separados, as funções podem ser usadas para dividir um script complexo em tarefas separadas e com nome, para que, com isso, melhorar a legibilidade.
Pontos importantes:
- Da mesma forma que variáveis, as funções devem ser declaradas antes que possam ser usadas.
- Em vez de declare, as funções são declaradas usando o comando function.
- Cada função tem um nome, e as declarações que a compõem, ficam dentro de chaves.
Exemplo 01:
#!/bin/bash
function BoasVindas(){
printf "\n\n Seja Bem Vindo $1 \n\n"
}
printf "\n Digite seu nome: \t"
read NOME
BoasVindas "$NOME"
No exemplo 01, a variável enviada para a função é identificada como
$1, se fossem duas variáveis a ser enviadas, teria o
$2, e assim por diante
Exemplo 02:
#!/bin/bash
function mostraMensagem() {
declare -g a b
a="$1"
b='Hello World!'
}
mostraMensagem 'Olá Mundo!'
printf "\n %s" "$b"
Nesse segundo exemplo, declarou duas como globais. Teste o programa para entender melhor o que ocorre.
Script bem comportado
Um script bash bem estruturado, tem que conter os cinco itens abaixo:
- Cabeçalho
- Declarações globais
- Verificação de sanidade
- Script principal
- Limpeza
Cabeçalho :: O cabeçalho define que tipo de script, quem o escreveu, qual a sua versão e quais suposições, ou opções, de shell bash ele faz. A primeira linha é o cabeçalho, começa com
#!, assim identifica o tipo de script. O
GNU/Linux usa essa informação para iniciar o programa certo para executar o script.
Normalmente é esse:
#!bin/bash
Exemplo:
#!/bin/bash
#Esvaziar os discos se ninguém estiver no computador
#Calebe B. Oliveira
#Versão
Declarações globais :: Todas as declarações que aplicam a todo o script, devem ser feitas no topo dele.
Exemplo:
declare -rx who="/usr/bin/who"
declare -rx sync="/bin/sync"
declare -rx wc="/usr/bin/wc"
Verificação de sanidade :: Antes que um script execute alguma declaração, é preciso verificar que todos os arquivos necessários estejam acessíveis. Todos os comandos requisitados devem ser executáveis e armazenados nas localizações esperadas.
Estas verificações são, às vezes, chamadas de verificação de sanidade, porque não deixam o script começar sua tarefa principal, a não ser que o computador esteja em um estado conhecido, ou "são".
Exemplo:
if test ! -x "$who" ; then
printf "O comando who não está disponível abortando \ n"
exit 192
fi
Script principal :: Quando você tiver verificado que o sistema está são, o script poderá continuar a executar seu trabalho.
Exemplo:
declare -i N
function ExibeNaTela(){
for(( CONT=0 ; CONT<$1 ; CONT++ )) ; do
printf "\n %s" "$2"
done
}
printf "\n Digite um valor para ser exibido \t"
read S
printf "\n Digite a quantidade de vezes que a mensagem deverá ser exibida \t"
read N
ExibeNaTela "$N" "$S"
Limpeza :: Quaisquer arquivos temporários devem ser apagados, e o script retorna um código de estado para a pessoa, ou programador, que o esteja executando.
Exemplo:
exit 0