Mostrando postagens com marcador return. Mostrar todas as postagens
Mostrando postagens com marcador return. Mostrar todas as postagens

quinta-feira, 13 de setembro de 2012

Shell Script parte 3: Funçoes

Introdução

O principal objetivo deste post é explicar de maneira simples e rapida como se faz utilização de funções em shell script.(Receomendo a leitura de parte I, parte II)
Funções

Assim como em qualquer "linguagem de programação" o shell script proporciona a utilização de funções.

Sintaxe:


nome_funcao ()
{
funcao_2;;
}

nome_funcao_2 ()
{
acao
}

nome_funcao


Onde:

  • nome_funcao – Funcão criada.
  • acao – Ação a ser tomada.
  • nome_funcao_2;; - Chamada da função nome_funcao_2.
  • nome_funcao – Função que dará inico ao shell script.


Será criado um shell script para no qual é possível escolher se será feito uma tabuada do 2 ou do 3 sendo que cada uma é feita por uma função.


#!/bin/bash

principal()

{

escolha=-1

while [ $escolha -ne 0 ];

do

echo "Escolha uma opção"

echo "1- Fazer tabuada do 2";

echo "2- Fazer tabuada do 3";

echo "0- Sair";

echo -n ":";

read escolha;

if [ "$escolha" -eq "1" ];

then

gerarTabuada2

elif [ "$escolha" -eq "2" ];

then

gerarTabuada3

fi

done

}

gerarTabuada3()

{

for i in {1..10}; do

echo "$i*3="$i*3

done

}

gerarTabuada2()

{

for i in {1..10}; do

echo "$i*2="$i*2

done

}

principal


Abaixo é possível ver a execução do shell script acima.




Passando parametros para um função

Uma ótima ideia é passar paramtros para uma função isso faz com que a mesma não se torne estatica.

Sintaxe:

nome_funcao ()
{
funcao_2 pametro1 parametro2 parametroN;;
}

nome_funcao_2 ()
{
 $1  #Utilização do parametro1
 $2  #Utilização do parametro2
 $N #Utilização do parametroN
acao
}

nome_funcao


Onde:

  • nome_funcao – Funcão criada.

    acao – Ação a ser tomada
  • parametro1/2/N - Parametros a serem passados para função. 
  • nome_funcao_2;; - Chamada da função nome_funcao_2.
  • nome_funcao – Função que dará inico ao shell script.


Será criado um shell script para no qual é possível escolher com qual número será feito uma tabuada.

Exemplo:

#!/bin/bash

principal()

{

escolha=-1

while [ $escolha -ne 0 ];

do

echo "Escolha uma opção"

echo "Informer um valor para fazer um tabuada(0=sair): ";


echo -n ":";

read escolha;

gerarTabuada $escolha;

done

}

gerarTabuada()

{

for i in {1..10}; do

echo "$i*$1="$i*$1

done

}

principal












Abaixo é possível ver a execução do shell acima.




Retornando valores de uma função

Sintaxe:

nome_funcao ()
{
retorno =$(funcao_2 pametro1 parametro2 parametroN)
}

nome_funcao_2 ()
{
 $1  #Utilização do parametro1
 $2  #Utilização do parametro2
 $N #Utilização do parametroN
acao

echo $retorno
}

nome_funcao


Onde:

  • nome_funcao – Funcão criada.

    acao – Ação a ser tomada.

    $retorno - Retorno da função
  • parametro1/2/N - Parametros a serem passados para função. 
  • nome_funcao_2;; - Chamada da função nome_funcao_2.
  • nome_funcao – Função que dará inico ao shell script.


Será criado um shell script para no qual é passado um nome para função e será retonado uma frase com o mesmo.

Exemplo:


#!/bin/bash

principal()

{
 echo "Qual seu nome ? ";
 read nome;

 frase=$(darBomdia $nome)

 echo $frase;
}

darBomdia()
{
 bomdia="Bom dia $1".
 echo $bomdia;

}

principal

exit

Abaixo é possível ver o funcionamento do shell script abaixo: