shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: RES:_[shell-script]_Criação_de_biblioteca_em_shellscript


From: Julio Cezar Neves - DISB.O
Subject: RES: RES:_[shell-script]_Criação_de_biblioteca_em_shellscript
Date: Mon, 10 Jun 2002 14:15:18 -0300

Fala amigo Pedro!

> Como sempre funcionou dessa forma, achei que era essa a 
> dúvida do caro colega Luis ... espero ter sido claro desta vez ;-)

e funciona mesmo! Vc não disse nada de errado, por isso me senti à vontade
para dar um pitaco. Mas o grande barato do comando ponto (.) é q ele não
cria um subshell, roda no shell corrente. É assim q funciona os .profile do
Unix e .bash_profile do Linux, portanto se vc quizer aproveitar as variáveis
por ele geradas em um _subshell_ elas terão q ser exportadas (é só dar uma
olhada no .bas_profile q vc verá q é tudo exportado). Como o Luiz esta
chamando o arquivo (estou chamando de arquivo pq com o cmd ponto este
arquivo não precisa ser executável) de dentro de 1 script, as variáveis
geradas por esta arquivo ficarão no mesmo shell, sendo então visíveis. 

Simplifiquei o seu exemplo para mostrar outra forma de fazer a mesma coisa:
# cat a
echo " Testando a função SUCCESS do functions"
echo " Testando a função FAILURE do functions"
echo " Testando a função PASSED do functions"
# b=`a`
# echo "$b"
 Testando a função SUCCESS do functions
 Testando a função FAILURE do functions
 Testando a função PASSED do functions
Ou:
# b=`. a`
# echo "$b"
 Testando a função SUCCESS do functions
 Testando a função FAILURE do functions
 Testando a função PASSED do functions

dá na mesma. O problema não é fazer. Mas sim qual a melhor maneira de fazer!
O Shell te dá tantos recursos q existem sempre diversas maneiras de fazer a
mesma coisa.

[ ]s,



> -----Mensagem original-----
> De: Pedro Henrique Ponchio [mailto:address@hidden]
> Enviada em: segunda-feira, 10 de junho de 2002 13:29
> Para: address@hidden
> Assunto: RES: RES:_[shell-script]_Criação_de_biblioteca_em_shellscript
> 
> 
> Grande Julião! Também não tinha visto nenhuma resposta quando 
> mandei a minha, desculpe se falei bobagem. Costumo usar as 
> funções destes scripts de sistema (uso RH) em alguns 
> programinhas meus, e, para que a função funcione, só uso 
> mesmo o "include virtual" do shell, como no exemplo besta abaixo:
>  
> --------------------------------------------------
> #!/bin/bash
> # teste de "include" do shell
> . /etc/rc.d/init.d/functions
>  
> echo_success
> echo " Testando a função SUCCESS do functions"
> echo_failure
> echo " Testando a função FAILURE do functions"
> echo_passed
> echo " Testando a função PASSED do functions"
> --------------------------------------------------
>  
> Como sempre funcionou dessa forma, achei que era essa a 
> dúvida do caro colega Luis ... espero ter sido claro desta vez ;-)
>  
> Abraços, 
> Pedro
>  
>  
>  -----Mensagem original----- 
> De: Julio Cezar Neves - DISB.O 
> [mailto:address@hidden]
> Enviada em: segunda-feira, 10 de junho de 2002 13:16
> Para: address@hidden
> Assunto: RES: RES:_[shell-script]_Criação_de_biblioteca_em_shellscript
> 
> 
> Pedro Henrique e Luiz Felipe,
> Pedro, me desculpe o pitaco, mas eu havia respondido de forma 
> genérica esta
> msg e assim sendo, gostaria de colocar algo + na resposta.
> 
> Luiz, da forma descrita pelo Pedro, no script que vc chama de 
> biblioteca, é
> necessário q vc exporte as variáveis que serão utilizadas 
> pelos programas
> chamadores.
> 
> Outra forma de fazer isso, é na "lib" vc dar um echo em uma 
> variável e no
> programa chamador vc inserir uma linha:
> 
> var=`biblioteca` ou ainda var=$(biblioteca) esta última forma não é
> reconhecida pelo sh.
> 
> desta forma, o q for ecoado por biblioteca ira para dentro de var.
> 
> Outra forma ainda é agregar a biblioteca ao corpo do seu 
> script e executá-la
> como uma função.
> 
> Como vc pode ver, cada caso é um caso!
> 
> [ ]s,
> Julio Cezar Neves
> -Eu Apoio o Software Livre-
> 
> 
> 
> > -----Mensagem original-----
> > De: Luiz Felipe Pereira [mailto:address@hidden]
> > Enviada em: segunda-feira, 10 de junho de 2002 10:33
> > Para: address@hidden
> > Assunto: Re: 
> RES:_[shell-script]_Criação_de_biblioteca_em_shellscript
> > 
> > 
> > 
> > Valeu pela ajuda
> >    
> >   Pedro Henrique Ponchio <address@hidden> escreveu: 
> > Basta criar o arquivo com as funções que você precisar usar, 
> > e inserí-lo nos seus scripts usando a sintaxe: 
> > 
> > . /path-do-arquivo/arquivo
> > 
> > A "biblioteca" é um script shell normal ... veja o script 
> > /etc/rc.d/init.d/functions para você se basear :-)
> > 
> > []´s
> > Pedro
> > 
> > -----Mensagem original-----
> > De: Luiz Felipe Pereira [mailto:address@hidden]
> > Enviada em: sábado, 8 de junho de 2002 00:10
> > Para: address@hidden
> > Assunto: [shell-script] Criação de biblioteca em shellscript
> > 
> > 
> > 
> > Galera,
> >     Estou com uma duvida. Estou precisando criar uma 
> > biblioteca em shellscript. Gostaria de saber qual  a extensao 
> > do arquiv, como faço para os outros scripts enxerga-la e usar 
> > as funções que nela existe?
> >    
> > 
> > 
> > 
> > ---------------------------------
> > Copa 2002
> > Yahoo! - Patrocinador oficial da Copa do Mundo da FIFA 2002
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de 
> > programação, como perl, C etc. Quem insistir em não seguir 
> > esta regra será moderado sem prévio aviso.
> > 
> ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > 
> ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> > http://www.listasdiscussao.cjb.net
> > 
> --------------------------------------------------------------------- 
> > 
> > Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço 
> > Yahoo! < http://br.yahoo.com/info/utos.html> . 
> > 
> > 
> > 
> > [As partes desta mensagem que não continham texto foram removidas]
> > 
> > 
> > 
> ---------------------------------------------------------------------
> > Esta lista não admite a abordagem de outras liguagens de 
> > programação, como perl, C etc. Quem insistir em não seguir 
> > esta regra será moderado sem prévio aviso.
> > 
> ---------------------------------------------------------------------
> > Sair da lista: address@hidden
> > 
> ---------------------------------------------------------------------
> > Esta lista é moderada de acordo com o previsto em 
> http://www.listasdiscussao.cjb.net
> --------------------------------------------------------------------- 
> 
> Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!. 
> 
> 
> 
> ---------------------------------
> Copa 2002
> Yahoo! - Patrocinador oficial da Copa do Mundo da FIFA 2002
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de 
> programação, como
> perl, C etc. Quem insistir em não seguir esta regra será 
> moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listasdiscussao.cjb.net
> --------------------------------------------------------------------- 
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de 
> programação, como perl, C etc. Quem insistir em não seguir 
> esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
http://www.listasdiscussao.cjb.net
--------------------------------------------------------------------- 

Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!
<http://br.yahoo.com/info/utos.html> . 



[As partes desta mensagem que não continham texto foram removidas]


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listasdiscussao.cjb.net
--------------------------------------------------------------------- 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]