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:13:01 -0200

Wagner,

   desculpe, faltou o arquivo funcoes.sh

###########
# funcoes.sh
###########
incrementa ()
{
    echo $((++i))
}

decrementa ()
{
    echo $((--i))
}

Abracos,

   William

2007/1/24, William José Vicente <address@hidden>:
>
> 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]