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