Pular para o conteúdo

Criando e utilizando uma "biblioteca de funções"

Dica publicada em Shell Script / Introdução
Leandro Santiago tenchi
Hits: 14.520 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Criando e utilizando uma "biblioteca de funções"

Muitas vezes precisamos usar alguma função em vários scripts ou temos uma função que sempre usamos, mas que sempre temos que copiar para um novo script. Isso às vezes é chato.

Como resolver esse problema? Criar um arquivo já com as funções declaradas, é claro.

Para isso, faça um script, como qualquer outro, mas que só tenha as declarações das funções, sem nada no corpo do programa principal.

Agora um exemplo de um arquivo que servirá como biblioteca:

#!/bin/bash

## Função que recebe dois parâmetros e devolve a soma dos mesmos
function Soma()
{
        echo $1+$2 | bc
}

## Função que recebe dois parâmetros e devolve a diferença entre eles
function Sub()
{
        echo $1-$2 | bc
}
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Salvo este arquivo, por exemplo, como /usr/lib/bibroteca e dou permissão de execução à ele. Se eu executar ele, não haverá saída nenhuma, pois não há nada para ser executado, certo?

Bem, agora vamos à segunda parte:

Escrevo agora o script que irá usar as funções que eu escrevi no primeiro script...

#!/bin/bash

## Aqui eu digo que as funções definidas
## em /usr/lib/bibroteca estarão disponíveis para uso neste script

. /usr/lib/bibroteca ## há um espaço entre o ponto (.) e a barra (/)

## Agora usando as funções:
    
     Soma 1 2 ## Função sem retorno

     Subtracao=` Sub 3 1 ` # Neste caso Subtracao recebe o valor de 3-1

     echo $Subtracao

Agora é só (compilar ... oops!, quer dizer) dar permissão para execução no arquivo e executá-lo. E a saída será:

3
2

Esse recurso também é útil no modo interativo do Shell (linha de comando). Basta executar:

$ . /usr/lib/bibroteca

Se você adicionar a linha acima no seu .bashrc, suas funções estarão disponíveis para uso já no login.

E usando as funções:

$ Soma 1 2
3

$ Sub 5 2
3

Lembrando que você pode criar quantas bibliotecas quiser, desde que as declare no script. Pode também usar uma biblioteca dentro de outra biblioteca.

Esse recurso mostra mais uma vez que o Shell Script está a altura de muitas linguagens de programação no mercado, embora esteja num escopo diferente.

Para os amantes do shell script, este é um recurso imprescindível. E ajuda muito os iniciantes nesta arte, como eu.

Muito obrigado e até a próxima contribuição...

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Como preparar a compilação de um programa que utiliza Qt4

Framebuffer - recursos gráficos sem o X

Criando um pacote com o kernel compilado para o Slackware

Limewire PRO sem pagar

Seu Linux falando português nativamente

Resolvendo problema com scripts que estão rodando no crontab

Comando "sed" com parâmetro que aceita barra " / "

Verificar se site está online via linha de comando

Imprima textos inteiros com o comando "echo"

Pacman colorido no Arch Linux

#1 Comentário enviado por diegotosco em 29/12/2006 - 00:42h
Caramba cara, muito legal. Estou iniciando meus estudos em Shell e dicas como essa só aumentam a minha vontade de aprender. Foi direto ao assunto e falou coisas novas.

Muito obrigado, é de dicas assim que precisamos.
#2 Comentário enviado por tenchi em 23/01/2007 - 13:50h
Ah, um resultado parecido pode ser obtido com o comando "source", lo lugar daquele ponto (.) no início da linha.

Outra observação interessante é que as variáveis setadas dentro da "biblioteca" estarão disponíveis também para os scripts que a utilizarem.
Exemplo:

#!/bin/bash
# biblioteca.sh
# Arquivo que servirá como biblioteca
pi=3.1415


Agora, o script que usará a biblioteca acima:

#!/bin/bash
source biblioteca.sh
raio=2
altura=5
echo -n "O volume do cilindro é: "
echo "$pi*($raio^2)*$altura" | bc -l

Vejam se o cálculo está mesmo certo.. rsrrsrs



Contribuir com comentário

Entre na sua conta para comentar.