Pular para o conteúdo

Identificar nome da função anterior [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Identificar nome da função anterior [RESOLVIDO]

Enviado em 20/03/2020 - 22:07h

Olá, tenho um script em que uma função chama outra.
Quero que a função que tem somente o logo/banner do programa tenha o texto colorido quando esta função é chamada por uma outra.
O código deste logo seria duplicado e deixado na mesma função, se a função do logo foi chamada por esta outra o logo em cores seria mostrado.
Posso copiar o logo e deixar ele colorido nesta outra função, mas queria saber se dá pra fazer algo do tipo.
Obrigado.

Responder tópico

2. Re: Identificar nome da função anterior [RESOLVIDO]

Enviado em 21/03/2020 - 01:51h


hauck escreveu:

Olá, tenho um script em que uma função chama outra.
Quero que a função que tem somente o logo/banner do programa tenha o texto colorido quando esta função é chamada por uma outra.
O código deste logo seria duplicado e deixado na mesma função, se a função do logo foi chamada por esta outra o logo em cores seria mostrado.
Posso copiar o logo e deixar ele colorido nesta outra função, mas queria saber se dá pra fazer algo do tipo.
Obrigado.
Boa noite Hauck.
Sim, é possível identificar a função que chamou, desconheço um comando do bash, mas improvisei....
Segue:
#!/bin/bash
linha=$(echo -e $_{1..80}'\b_');
clear;
INICIO() { ORIGEM="INICIO";echo -e "\n$linha\nESTA É A FUNCAO: \"INICIO\"\n$linha\n";FUNCAO_01; }

FUNCAO_01() { echo -e "\n$linha\nESTA É A FUNCAO: \"FUNCAO_01\"\nChamada por: $ORIGEM\n$linha";ORIGEM="FUNCAO_01";FIM; }

FIM() { echo -e "\n$linha\nESTA É A FUNCAO: \"FIM\"\nCHAMADA POR: $ORIGEM\n$linha" ; }

INICIO
#END OF SCRIPT#




______________________________________________________________________
Importante: echo -e "\n$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')\n"
Att.: Marcelo Oliver
______________________________________________________________________

3. Re: Identificar nome da função anterior [RESOLVIDO]

Enviado em 21/03/2020 - 03:04h

Boa noite hauck,

Recomendo você usar argumento na função, quando a função é chamada sem argumento o banner é sem cor. Espero ter ajudado.


#!/bin/bash

banner(){
if [ $# -lt 1 ]; then
cor_i=''
cor_o=''

else
cor_i='\033[01;32m'
cor_o='\033[00;37m'
fi
echo -e "${cor_i}\n##############"\
"\n### banner ###"\
"\n##############${cor_o}"
}

f1(){
banner 1
}

f2(){
banner
}

f1 # função 1 executa o banner com cor
f2 # função 2 executa o banner sem cor

exit $?

4. Re: Identificar nome da função anterior [RESOLVIDO]

Enviado em 21/03/2020 - 10:35h


Obrigado.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder