Identificar nome da função anterior [RESOLVIDO]

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

hauck
hauck

(usa Nenhuma)

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.


  


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

Marcelo Oliver
msoliver

(usa Debian)

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]

Cristiano Martins Santana
cristiano-dev

(usa Ubuntu)

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]

hauck
hauck

(usa Nenhuma)

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


Obrigado.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts