O que significa ponto nesse comando? [duplicado]

0

De acordo com o tutorial oficial do Flask :

Now, whenever you want to work on a project, you only have to activate the corresponding environment. On OS X and Linux, do the following:

$ . venv/bin/activate

Isso funciona. No entanto, quando tento executar ./venv/bin/activate e venv/bin/activate , ambos me deram -bash: venv/bin/activate: Permission denied .

Minha pergunta é: o que o . faz?

    
por nalzok 06.09.2016 / 10:01

2 respostas

3

O ponto é, nesse caso, sinônimo da palavra-chave source da shell. O que ele faz é ler o arquivo e executar cada linha como se fosse digitado diretamente na linha de comando. Permissão sábia tudo que você precisa é acesso de leitura ao arquivo.

O fornecimento de um arquivo com comandos shell não é o mesmo que invocar um script shell: Um shell script precisa de permissão de execução (é por isso que você obteve permissão negada) e lançará seu próprio shell (não interativo).

    
por 06.09.2016 / 10:09
1

O ponto médio executa o scirpt no shell atual. Normalmente, os shell scirpt são executados em subshell, mas quando você sai do scirpt você perde todas as variáveis, setadas dentro dele. Desta forma (com ponto) é como manter os valores das variáveis, diretórios alterados e assim por diante.

    
por 06.09.2016 / 10:03