script de origem como comando [closed]

0

Por algum motivo (?), muitas vezes quando escrevo scripts hoje em dia eles não funcionam, ou funcionam apenas parcialmente, e então eu tento com . ou source e eles funcionam perfeitamente. Não sei ao certo o que está causando isso, pois os scripts são diferentes de várias maneiras, é difícil isolar o que deve ser originado para que o script funcione como um todo. Além disso, percebi que esse é quase sempre o caso quando eu mudo coisas de .bashrc aliases e funções para scripts.

Mas para minha pergunta atual, na situação acima, qual é a melhor maneira de "engolir" o ponto de origem, então você ainda pode usar os scripts como comandos de uma só palavra, sem ter que acertar o ponto toda vez ?

    
por Emanuel Berg 10.09.2012 / 22:01

2 respostas

2

Se você quiser um comando chamado script que, na verdade, origina o arquivo script em vez de executá-lo como um processo separado, faça uma função:

script () { . /path/to/script; }

Para tornar essa função permanente, adicione-a ao arquivo rc relevante do seu shell (por exemplo, ~/.bashrc for bash ).

    
por 10.09.2012 / 22:29
1

Um exemplo real (ou uma decomposição do que "não funciona" em um exemplo) seria melhor.

Dito isto, quando você usa source um arquivo, você está executando seu conteúdo dentro do mesmo ambiente (shell) daquele que invoca a operação. source ing é uma boa técnica para poder incluir variáveis em qualquer número de scripts.

Se o script que você deseja executar não estiver em PATH , faça referência ao seu caminho atual (para executar o script), digitando "ponto", "barra", "nome do arquivo". Isso é totalmente diferente de 'fonte'.

    
por 10.09.2012 / 22:14