O que isso significa? $. test.sh [duplicado]

0

Eu vi o comando como " . test.sh " em algum código fonte do shell, mas eu não sei o que isso faz. Então, eu tentei isso. E esse arquivo .sh é executado.

No entanto, não entendo como " . " funciona. Você pode explicar?

    
por sinapps 23.03.2013 / 15:50

2 respostas

4

O comando . (que tem um sinônimo, source , em bash , mas não na maioria dos outros derivados do shell Bourne) lê o arquivo nomeado como parte do shell atual.

Considere:

$ cat test.sh
export ENVVAR="Welcome"
echo $ENVVAR
$ echo $ENVVAR

$ test.sh
Welcome
$ echo $ENVVAR

$ . test.sh
Welcome
$ echo $ENVVAR
Welcome
$

NB: Cheat 1: Eu suponho que test.sh é executável. Batota 2: eu suponho que test.sh está em um diretório em $PATH .

Isso significa que as variáveis de ambiente definidas em test.sh afetam o shell atual. Por contraste, a execução de um comando sem o . não afeta o ambiente do shell atual. O mecanismo . é usado quando .profile e arquivos relacionados são lidos, por exemplo.

Observe que . procura nomes simples (como test.sh sem barra) no PATH, mas o arquivo só precisa ser legível; não precisa ser executável.

    
por 23.03.2013 / 16:20
3

É uma abreviação para isso, nada mais:

source test.sh

link

    
por 23.03.2013 / 15:52

Tags