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

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

Re: [shell-script] Funções


From: William José Vicente
Subject: Re: [shell-script] Funções
Date: Wed, 24 Jan 2007 21:11:49 -0200

Wagner,

   o source (ou .) funciona realmente como um #include. Se você quiser, crie
um arquivo somente com funções e use nos demais scripts. Veja o exeplo
abaixo.

##############
# Script Principal
##############
#!/bin/sh

. funcoes.sh # include das funções
i=10
echo $i
incrementa # executando a função incrementa do arquivo funcoes.sh
decrementa # executando a função decrementa do arquivo funcoes.sh
echo $i

   Espero ter respondido sua pergunta.

Abraços,

   William

Em 24/01/07, Wagner Brasileiro Cardoso <address@hidden>
escreveu:
>
>   Com mil perdões lista! Obrigado pela correção Júlio!
> Inverti totalmente a situação, fui olhar agora no cartão de referência
> qual
> era a definição resumida do comando e lá diz: "Executa comandos contidos
> em
> um arquivo no ambiente de shell atual" Justamente o contrário do que
> disse.
>
> Aproveitando e pegando carona, existe outra maneira de se fazer uma esécie
> de #include sem ser pelo source? Neste caso ficou a dúvida se com o source
> poderia se incluir um arquivo inteiro de funções ou se teria que ter cada
> arquivo com funções separadamente, pois ele me pareceu tentar executar
> tudo
> de uma vez. Já no include incorporaríamos no corpo do script e faríamso a
> chamada qaundo necessário.
>
> Obrigado,
>
> Wagner Brasileiro
> -----Mensagem original-----
> De: address@hidden <shell-script%40yahoogrupos.com.br>
> [mailto:address@hidden<shell-script%40yahoogrupos.com.br>]Em
> nome de Julio C. Neves
> Enviada em: terça-feira, 23 de janeiro de 2007 17:26
> Para: address@hidden <shell-script%40yahoogrupos.com.br>
> Assunto: Re: [shell-script] Funções
>
> Epa Wagner,
> acho que vc se enganou um pouquinho qdo disse: "se sua função retorna
> algum
> valor para
> o programa que a chamou terá que exportá-la para que seja visível pelo
> script que a chamou.".
>
> O Tiago disse: " Sim, quem faz isso é o comando source ou '.' ". Não sei
> se
> entendi o que ele quis dizer e talvez diga a mesma coisa com outras
> palavras.
>
> Veja o script1.sh e o script2.sh, a seguir:
>
> $ cat script1.sh
> #!/bin/sh
> a=5
> b=9
> . ./script2.sh
> echo $a:$b
>
> $ cat script2.sh
> #!/bin/sh
> a="letra a"
> b="letra b"
>
> Ou seja, o script1.sh cria 2 variáveis e chama o script2.sh com o cmd
> source
> (.) e depois imprime estas variáveis. O script2.sh somente altera o valor
> destas variáveis.
>
> Qdo executamos o script1.sh veja o que acontece:
>
> $ ./script1.sh
> letra a:letra b
>
> Isto é o script2.sh alterou as variáveis, ninguém exportou nenhuma
> variável
> e o script1.sh viu as variáveis alteradas. Ou seja, o cmd source ou . é
> usado *justamente* para não fazer um fork do shell instanciando-o.
>
> Aqui tem tudo, em português, sobre o cmd
>
> souce<
> http://twiki.softwarelivre.org/bin/view/TWikiBar/TWikiBarPapo008#O_com
> ando_source>
>
> Abração,
> Julio
> :wq
>
> Em 23/01/07, Wagner Brasileiro Cardoso
> <address@hidden<wagnerbrasileirocardoso%40yahoo.com.br>
> >
> escreveu:
> >
> > Não esquecendo que o comando source vai rodar uma instância separada do
> > bash
> > ou do seu interpretador de comandos e se sua função retorna algum valor
> > para
> > o programa que a chamou terá que exportá-la para que seja visível pelo
> > script que a chamou.
> >
> > Um abraço,
> >
> > Wagner Brasileiro
> >
> > -----Mensagem original-----
> > De: address@hidden 
> > <shell-script%40yahoogrupos.com.br><shell-script%40yahoogrupos.
> com.br>
> >
> [mailto:address@hidden<shell-script%40yahoogrupos.com.br>
> <shell-script%40yahoogrupos.com.br>]E
> m
> > nome de Tiago Barcellos Peczenyj
> > Enviada em: terça-feira, 23 de janeiro de 2007 14:29
> > Para: address@hidden<shell-script%40yahoogrupos.com.br>
> <shell-script%40yahoogrupos.com.br>
> > Assunto: Re: [shell-script] Funções
> >
> > Sim, quem faz isso é o comando source ou '.'
> >
> > #!/bin/bash
> > . arquivo_com_funcoes.sh
> > ...
> >
> > []´s Tiago
> >
> > On 1/23/07, Diogo Júnior
> <address@hidden <diogojunior2002%40yahoo.com.br>
> <diogojunior2002%40yahoo.com.br>>
> > wrote:
> > >
> > > Olá pessoal!
> > >
> > > Gostaria de saber se eu posso criar um arquivo contendo algumas
> funções
> > > feitas por mim, e depois importar esse arquivo em futuros scripts que
> eu
> > > venha a fazer?
> > > Eu já faço isso com python, mas gostaria de poder fazer também com
> shell
> > > script.
> > >
> > > Desde já agradeço.
> > >
> > > Diogo Bonfim Pereira Junior
> > > Graduando em Ciências da Computação
> > > __________________________________________________
> > > Fale com seus amigos de graça com o novo Yahoo! Messenger
> > > http://br.messenger.yahoo.com/
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> > Tiago B Peczenyj
> > Linux User #405772
> >
> > # cd /pub
> > # more beer
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


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



reply via email to

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