qual é a diferença entre o comando shell com “.” e “./”? [duplicado]

0

No shell do Linux, vi o comando começar com "./"

$ ./example

Mas também vi o comando similar como     $. example.sh

A minha pergunta é que eles têm a mesma função?

    
por macchiavalley 11.06.2014 / 18:12

2 respostas

1

./example.sh executará example.sh no diretório atual.

. example.sh fonte example.sh .

    
por 11.06.2014 / 18:19
1

Embora pareçam semelhantes, os dois comandos não estão relacionados.

./example

executará um script de shell binário ou executável na pasta atual. Se for um script de shell, ele será executado em um sub shell.

. example

é idêntico a

source example

que irá "fonte" do arquivo, ou seja, executá-lo no contexto do shell atual . Isso significa que, se houver declarações de variáveis ou funções nesse arquivo, elas estarão disponíveis no shell atual após o comando source . Também manipulações variáveis ou o que acontecerá no shell atual. É como se você tivesse digitado o conteúdo do arquivo linha por linha manualmente no terminal.

    
por 11.06.2014 / 18:20