[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