Funções em Shell Script

Publicado por Thiago Henrique F. Margonar em 05/02/2014

[ Hits: 24.082 ]

 


Funções em Shell Script



Saudações, galera.

Achei que seria interessante compartilhar com vocês, sobre funções no Shell Script.

Não vou abordar cada linha no script, por ter criado algo mais simples de entender, só vou abordar mesmo a questão da função nos scripts. Vamos lá:

Exemplo 1

Vamos criar 2 arquivos:

O primeiro arquivo, vamos chamar de principal.sh:

vim principal.sh

#!/bin/bash
echo "deseja chamar a funcao? S/n "
read opcao

if [ "$opcao" == "s" ];then
    source funcao.sh  # O source é responsável por chamar o outro script
else
    echo "saindo"
fi

sleep 2
exit

O segundo arquivo, vamos chamar de funcao.sh como foi descrito acima:

vim funcao.sh

#!/bin/bash
echo "funcao chamada"

Agora, o arquivo principal.sh quando executado, chamará o arquivo funcao.sh.

Obs.: não vamos esquecer de dar a permissão nos arquivos para que eles funcionem:

chmod +x principal.sh funcao.sh

Exemplo 2

Outra forma de usar funções em Shell Script, é no próprio script. Por exemplo:

#!/bin/bash
###### funcao ################

funcao()
{
    echo "funcao chamada"
}

###Bloco Principal###############
echo "deseja chamar a funcao? S/n "
read opcao

if [ "$opcao" == "s" ];then
    funcao  # Reparem que aqui nós chamamos a função sem o source
else
    echo "saindo"
fi

sleep 2
exit

Seguindo a lógica da programação, o shell irá fazer primeiramente, a leitura do bloco principal ignorando as funções acima do mesmo. Ou seja, podemos ter milhões de funções acima do bloco principal, pois elas só serão executadas sendo chamadas no script.

Além disso, usando a mesma lógica para chamar as funções, podemos chamar funções dentro de funções, como você achar melhor.


É isso aí, galera.
Espero que seja útil essa dica. Qualquer dúvida, estou à disposição.

Outras dicas deste autor

Instalando Ruby on Rails no CentOS

Acessando seu Ubuntu por um terminal Windows de outra rede

CentOS + xrdp - Acessando CentOS pelo Windows (Acesso remoto da área de trabalho com "Mstsc.exe")

Compartilhamento simples de arquivos com Samba no CentOS 6.4

Backup semanal/mensal/anual do PostgreSQL

Leitura recomendada

Como manter seu código atualizado com um repositório Git remoto

diff - Comando com exemplos

Renomear arquivos ou diretórios iniciados por "-"

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

Scpript para limpar os logs

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts