Fala Guilherme, este ponto (ou source) está muito bem explicado em português em http://twiki.softwarelivre.org/TWikiBar/TWikiBarPapo008#O_comando_source. Dá uma olhada.
-- Abraços, Julio *Em setembro estarei dando um treinamento Shell em Brasília (em 2 fins de semana). Mais informações: www.tecnologiabr.com.br Tel: (61) 3354-3162* 2008/8/11 Guilherme Gall <[EMAIL PROTECTED]> > Cristiano, > > O ponto equivale ao comando 'source'. Ele executa o programa passado > por parâmetro no ambiente da shell atual, sem criar uma sub shell. > > Exemplo: > > $ cat exemplo.sh > VAR="Olá mundo" > $ echo $VAR > > $ chmod +x exemplo.sh > $ ./exemplo.sh #exemplo.sh definiu um valor para VAR em uma sub shell > $ echo $VAR #portanto, ela não existe mais nesse ponto > > $ source exemplo.sh # exemplo.sh foi executado no ambiente da shell atual > $ echo $VAR # portanto, VAR passa a ter o valor que foi definido para > ela por exemplo.sh > Olá mundo > > Quanto ao uso do 'source' ser um problema de segurança, lembre-se que > executar qualquer coisa através dele não te dá mais permissões do que > as que você já tinha. Por exemplo, vou tentar remover o arquivo > /var/log/messages, que só dá permissões de escrita para o root: > > $ cat exemplo2.sh > rm -f /var/log/messages > $ . exemplo2.sh # usei ponto no lugar de 'source' para você ver que > são equivalentes > rm: imposível remover `/var/log/messages': Permissão negada > > Saudações, > -- > Guilherme Magalhães Gall > > 2008/8/10 Cristiano Ferrari <[EMAIL PROTECTED] <boxferrari%40gmail.com> > >: > > > Salve honoráveis, boa noite. > > > > Sempre que escrevo um código em um script que possa ser reutilizado em > > outros (tipo funções, por exemplo) ou que possa compartilhar > > parâmetros com outros scripts, como váriáveis, eu costumo por estes > > trechos em arquivos separados e incorporá-los usando o comando: '. > > /fullpath/arquivo.sh' no código do script (meio sem saber extamente o > > porquê do '. ' antes do endereço do arquivo). > > > > Eu sempre dei, previamente, permissão de execução para este arquivo de > > parâmetros/funções, mas hoje, ao esquecer de dar permissão a um novo > > arquivo destes, percebi que ela não é necessária (!!!) para que este > > arquivo seja executado. > > > > Isso nunca havia me ocorrido, mas me chamou a atenção para um detalhe: > > este tipo de comportamento não compromete a segurança? > > > > Afinal, se eu tentar chamar o arquivo diretamente (ex: > > '/fullpath/parametros.sh'), seja via outro script ou diretamente no > > prompt, o shell nega a execução, mas se chamá-lo usando '. > > /fullpath/parametros.sh' ele é executado, inclusive no prompt (e eu > > nem preciso ser root para isso). > > > > Talvez eu esteja confundindo conceitos ou usando o '. /arquivo' > > indevidamente. > > > > Então, alguém, por favor, poderia me explicar por que eu consigo > > executar um arquivo sem permissões de execução apenas acrescentando um > > '. ' antes dele? > > > > Abraço > > > > Cristiano Ferrari > > > > > > ------------------------------------ > > > > ---------------------------------------------------------- > > 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: [EMAIL > > PROTECTED]<shell-script-unsubscribe%40yahoogrupos.com.br> > > ---------------------------------------------------------- > > Esta lista é moderada de acordo com o previsto em > http://www.listas-discussao.cjb.net > > ---------------------------------------------------------- > > Servidor Newsgroup da lista: news.gmane.org > > Grupo: gmane.org.user-groups.programming.shell.brazil > > > > Links do Yahoo! Grupos > > > > > > > > -- Abraços, Julio Em setembro estarei dando um treinamento Shell em Brasília (em 2 fins de semana). Mais informações: www.tecnologiabr.com.br Tel: (61) 3354-3162 [As partes desta mensagem que não continham texto foram removidas]
