Podemos estruturar o nosso código fonte em shell script para torna-lo modular, criando assim uma biblioteca de funções para serem reutilizadas quando necessário durante a programação de acordo com a implementação. Esta função que nada mais é do que um bloco de código que pode ser invocado pelo resto do script apenas instanciando o nome da função, evitando assim a digitação do mesmo código ao longo do script.

A função deve ser declarada no início do arquivo para torna-la global a todo o resto do código fonte, possibilitando assim a sua invocação. Logo abaixo segue o esquema de declaração de uma função em shell script ficando aqui a dica podendo construir nossas funções de duas maneiras:


function nome-da-função {
comando-1 ...

comando-2 ...

comando-N ...

}

ou


nome-da-função () {
comando-1 ...
comando-2 ...
comando-N ...
}

Abaixo segue um exemplo prático simples de uma função em shell script.

Ex.:


#------------------------------------------------------------------
#!/bin/bash
#------------------------------------------------------------------
# Declaração de uma função em shell script.
#------------------------------------------------------------------
ListDirectory () {

list=$(ls -al $1)

echo "$list"
}

# Invocação da funcção ListDirectory
ListDirectory '/usr/share/bin/'

Reparem que a declaração acima é bem simples, como já foi dito na postagem anterior, ela é iniciada com a declaração do shell a ser utilizado que no nosso caso é “bash Bourne Shell”. O método leva o nome de listDirectory, que lista de forma personalizada o diretório que lhe é especificado por um parametro passado, exibindo na tela do terminal do usuário. No final temos a invocação da função passando-lhe um parametro que é o diretório que queremos listar.

Para acessar os parametros da função em contrução, deve-se usar o “$” seguido de um número válido, ou seja o número índice do arqumento passado. Exemplo reparem abaixo na seguinte função:


#------------------------------------------------------------------
#!/bin/bash
#------------------------------------------------------------------
# Declaração de uma função em shell script.
#------------------------------------------------------------------
addUser () {
`useradd -p $2 $1`
}

# Invocação da função addUser
addUser "João" "senha1234"

O exemplo acima cria uma função para adicionar um usuário ao sistema, reparem que a invocação dessa função ao fim do código passou duas strings como parametro, e se repararmos na declaração mais acima veremos que essas duas string são parametros para o comando useradd que adiciona um usuário com um senha, sendo o primerio o nome do usuário a ser adicionado e em seguida a sua senha (password).

É isso ai estamos prontos para criar funções em shell script, até mais.

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.