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.
#!/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: