Por que o `.` foi escolhido para representar o comando dot?


8

Depois de ver essa pergunta, pergunto-me por que o .símbolo foi escolhido para representar o comando dot ?

Não consigo encontrar muita coisa sobre sua origem ou quem a criou e estou curioso para saber por que um ponto final foi escolhido para representar esse comando.


2
Você tentou perguntar a Stephen Bourne?
schily

1
@schily: Ele não estava disponível para conversar
jesse_b

8
Porque seria bobagem chamar "%" o "comando dot".
Ignacio Vazquez-Abrams

1
@ slm: Correto, por que foi .usado para representar o comando ponto (fonte)? Está relacionado a .ser o diretório atual?
28418 jesse_b

1
@ Rob: Não, não é.
jesse_b

Respostas:


7

A menção mais antiga do comando dot que eu posso encontrar está no manual do shshell de Stephen Bourne no Unix, versão 7 (pode ser mais antigo, mas evidentemente não está presente como um dos comandos internos shdo Release 6 ).

. file  Read and execute commands from file and return.  The search path
        $PATH is used to find the directory containing file.

O ponto, em termos bastante gerais, parece ter sido associado a "aqui" ou "atual". O .diretório é o diretório atual , e o .endereço no adbdepurador da mesma versão do Unix tinha um .endereço que era o endereço atual . Da mesma forma, inserir uma .linha seguida por uma nova linha no ededitor exibirá novamente a linha atual do buffer de edição ( .endereça a linha atual). O ponto também significa o nó atual em certas linguagens de consulta estruturada para XML, JSON, YAML etc. (embora sejam invenções posteriores).

Portanto, acho que não é exagero especular que o .comando no shell também signifique "aqui" ou "atual". Em particular, "execute este script no ambiente atual ".

O ponto também é bastante rápido e fácil de escrever, e ter um comando curto para fazer uma tarefa comum (seja em ed, adbou na casca) pode ter sido outra razão pela qual outro nome já não foi utilizado.


Note que eu não tenho uma versão funcionando de shpartir Release 7 para testar as coisas, e que eu não posso encontrar o real implementação da. casca de Bourne de que a liberação no repositório Git acima mencionado, então eu não posso dizer com certeza que ele realmente fez exatamente o que faz hoje. Mas é provável que sim.


+1. Obrigado por esta longa resposta. A propósito, existe alguma diferença entre ponto e fonte quando usado para executar comandos de um arquivo: . scriptfileversus source scriptfilein bash? Em outras palavras, são dois nomes do mesmo comando interno?
sudodus 15/01/19

@sudodus Eles são equivalentes. O sourcecomando tem um histórico diferente, pois é herdado de csh.
Kusalananda

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.