Como invocar uma sub-função

1. Como invocar uma sub-função

Morpheus
Minions

(usa Nenhuma)

Enviado em 20/08/2019 - 21:25h


Ex:

#!/bin/bash

clear

echo "Oi Mundo...."


função_principal(){



A(){

# Função A
}


B(){

# Função B

}

echo "Algo na tela"

sub-função(){



}


Laço for


exit 0




}


Modo de usar:

$ ./script.sh função_principal sub-função



Tutorial base: https://cleitonbueno.com/shell-script-funcoes/



  


2. Re: Como invocar uma sub-função

Mac
Skylen

(usa Slackware)

Enviado em 25/08/2019 - 18:02h

Boa noite, é o mesmo princípio da função normal. Exemplo:


# Essa é função normal declara ela primeiro
nome(){
echo "Digite seu nome: "
read nome
echo "Seu nome é: $nome"
}

nome # Abaixo coloca o nome da função, dessa forma ela será executada.

#No seu caso fica assim...
principal(){

b(){

}
a(){
b #Chama a função 'b'
}


a #Chama a função 'a'


}

principal #Chama a função

#Dessa forma ela segue o mesmo princípio inicial



3. Re: Como invocar uma sub-função

Morpheus
Minions

(usa Nenhuma)

Enviado em 25/08/2019 - 20:03h


Skylen escreveu:

Boa noite, é o mesmo princípio da função normal. Exemplo:


# Essa é função normal declara ela primeiro
nome(){
echo "Digite seu nome: "
read nome
echo "Seu nome é: $nome"
}

nome # Abaixo coloca o nome da função, dessa forma ela será executada.

#No seu caso fica assim...
principal(){

b(){

}
a(){
b #Chama a função 'b'
}


a #Chama a função 'a'


}

principal #Chama a função

#Dessa forma ela segue o mesmo princípio inicial




Obrigado em responde ao tópico.


Seria bom ser fosse assim.

A ideia é chamar somente uma sub-função escolhida pelo usuário que esta na função principal que pode existir N sub-função.


Modo de usar:

$ ./script.sh função_principal sub-função


Obs: Essa sub-função é escolhida pelo usuário que esta na função principal que existe N sub-função.

Não quero criar um script que executa somente as chamadas das funções nele. No seu exemplo só rodaria a função "a" e se o usuário escolhesse a função "b" ou outra?



4. Re: Como invocar uma sub-função

Ruan
ru4n

(usa Debian)

Enviado em 25/08/2019 - 20:22h

Vc deve então criar uma condição dentro da função que recebe um parâmetro para decidir qual subfunção irá executar.
Por ex:
fn() {
A() { echo A; }
B() { echo B; }
C() { echo C; }

case $1 in
'A') A;;
'B') B;;
'C') C;;
*) echo "Função inexistente";;
esac
}

fn $1



5. Re: Como invocar uma sub-função

Morpheus
Minions

(usa Nenhuma)

Enviado em 26/08/2019 - 01:33h


ru4n escreveu:

Vc deve então criar uma condição dentro da função que recebe um parâmetro para decidir qual subfunção irá executar.
Por ex:
fn() {
A() { echo A; }
B() { echo B; }
C() { echo C; }

case $1 in
'A') A;;
'B') B;;
'C') C;;
*) echo "Função inexistente";;
esac
}

fn $1




Obrigado em responde ao tópico.


Tem algum problema no código abaixo?





#!/bin/bash
#
# Author: Minions <https://www.vivaolinux.com.br/~Minions>
#
# Version: 0.1
#
# Data: 26/08/2019 as 0:54
#
#
# Colaboração:
#
# ru4n <https://www.vivaolinux.com.br/~ru4n>
#
#
# Copyright (c) 2005 All rights reserved.
#
#
# Descrição: Estudo sobre Shell Script e organização do código.
#
#
#
# Modo de usar:
#
#
# ./teste.sh fnnn
#
# ./teste.sh fnn
#
#
# ./teste.sh fn A
# ./teste.sh fn B
# ./teste.sh fn C
#
#
# Fontes:
#
# https://imasters.com.br/banco-de-dados/10-dicas-para-programar-em-shell-script
# https://micheltiago.wordpress.com/l-programacao/shell-script/
#
#
# ==========================================================


clear


# ---------------------------------------------------------

fnnn() { # Função principal

echo "viva o linux
"

ping www.vivaolinux.com.br -c5


}

# ---------------------------------------------------------


fnn() { # Função principal

echo "VOL"

}


# ---------------------------------------------------------

# INVOCAR UMA SUB-FUNÇÃO

fn() { # Função principal

A() { echo A; } # Sub função
B() { echo B; } # Sub função
C() { echo C; } # Sub função

case $1 in
'A') A;;
'B') B;;
'C') C;;
*) echo "Função $1 inexistente";;
esac

}


# ---------------------------------------------------------




case "$1" in
"fnn") fnn ;;
"fnnn") fnnn ;;
"fn") fn $2 ;;
*) echo "Error!" ;;


esac



exit 0






Existe algo como o Netbeans para shell script?

Na hora de procura o inicio e o fim de uma parte do código fica muito difícil. Já imaginou um arquivo com 3 mil linhas e osso rsrsrsrs :)





6. Re: Como invocar uma sub-função

Mac
Skylen

(usa Slackware)

Enviado em 26/08/2019 - 09:54h

Bom dia,
Está funcionado certinho!!!

Respondendo sua pergunta, você pode usar qualquer documento de texto simples, gedit, nano, vim, leafpad, entre outros. Enquanto ao tanho dos códigos, você utiliza funções para dividir o programas em blocos para ficar mais claro a análise e a verificação de erros,assim como técnicas de debug para corrigir estes.

Segue um outro exemplo...

modo... opções

sh programa a1
sh programa b1
sh programa c1 A
sh programa c1 B
sh programa c1 C


#!/bin/bash
#
#
#

#cd /home/mac/teste/nomes

clear

aa() { # Função principal

echo "viva o linux
"

ping www.vivaolinux.com.br -c5


}


bb() { # Função principal

echo "VOL"

}




cc() { # Função principal

primeiro(){
echo "Você escolheu a opção A"

}

segundo(){
echo "Você escolheu a opção B"

}

terceiro(){
echo "Você escolheu a opção C"

}


if [ "$opcao" == A ]; then

primeiro

elif [ "$opcao" == B ]; then

segundo

elif [ "$opcao" == C ]; then

terceiro

else
echo "Função $2 inexistente"
exit

fi

}

opcao=$2;

for resultado in $1 ; do

if [ "$1" == a1 ]; then
aa

elif [ "$1" == b1 ]; then
bb

elif [ "$1" == c1 ]; then


sleep 1
cc $opcao

else
echo "Error!"
fi


done







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts