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 <[EMAIL PROTECTED]> 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: [email protected] <shell-script%40yahoogrupos.com.br> > [mailto:[email protected]<shell-script%40yahoogrupos.com.br>]Em > nome de Julio C. Neves > Enviada em: terça-feira, 23 de janeiro de 2007 17:26 > Para: [email protected] <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 > <[EMAIL PROTECTED]<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: [email protected] > > <shell-script%40yahoogrupos.com.br><shell-script%40yahoogrupos. > com.br> > > > [mailto:[email protected]<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: [email protected]<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 > <[EMAIL PROTECTED] <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]
