Pourquoi «.» A-t-il été choisi pour représenter la commande dot?

8

Je me demande après avoir vu cette question pourquoi le .symbole a été choisi pour représenter la commande point ?

Je ne peux pas trouver grand-chose sur son origine ou qui l'a créé et je suis curieux de savoir pourquoi un point final a été choisi pour représenter cette commande.

jesse_b
la source
2
Avez-vous essayé de demander à Stephen Bourne?
schily
1
@schily: Il n'était pas disponible pour discuter
jesse_b
8
Parce qu'il serait idiot d'appeler "%" la "commande dot".
Ignacio Vazquez-Abrams
1
@slm: Correct, pourquoi a été .utilisé pour représenter la commande dot (source)? Est-ce lié au .répertoire actuel?
jesse_b
1
@Rob: Non, ce n'est pas le cas.
jesse_b

Réponses:

7

La première mention de la commande dot que je peux trouver se trouve dans le manuel du shshell de Stephen Bourne dans Unix version 7 (elle peut être plus ancienne, mais pas évidemment présente comme l'une des commandes intégrées shdans la version 6 ).

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

Le point, en termes assez généraux, semble avoir été associé à "ici" ou "courant". Le .répertoire est le répertoire actuel et l' .adresse dans le adbdébogueur de la même version d'Unix avait une .adresse qui était l' adresse actuelle . De même, la saisie d'un .saut de ligne dans l' edéditeur affichera à nouveau la ligne actuelle du tampon d'édition ( .adresse la ligne actuelle). Le point signifie également le nœud actuel dans certains langages de requête structurés pour XML, JSON, YAML, etc. (bien qu'il s'agisse d'inventions ultérieures).

Il est donc, je pense, pas trop tiré par les cheveux de spéculer que la .commande dans le shell signifie également "ici" ou "courant". En particulier, "exécutez ce script dans l' environnement actuel ".

Le point est également très rapide et facile à saisir, et ayant une commande courte pour faire une tâche commune (que ce soit dans ed, adbou dans la coquille) peut avoir été une autre raison pour laquelle un autre nom plus n'a pas été utilisé.


Notez que je n'ai pas de version fonctionnelle de la version sh7 pour tester les choses et que je ne trouve pas l' implémentation réelle de. dans le shell de Bourne de cette version dans le référentiel Git susmentionné, donc je ne peux pas dire c'est sûr qu'il a fait exactement ce qu'il fait aujourd'hui. Mais c'est probablement le cas.

Kusalananda
la source
+1. Merci pour cette longue réponse. Soit dit en passant, y a-t-il une différence entre le point et la source lorsqu'ils sont utilisés pour exécuter des commandes à partir d'un fichier: . scriptfilepar rapport à source scriptfiledans bash? En d'autres termes, s'agit-il de deux noms de la même commande intégrée?
sudodus
@sudodus Ils sont équivalents. La sourcecommande a une histoire différente si, comme il est hérité de csh.
Kusalananda
2

Que ce soit parce que dotc'est le nom du symbole ..

1: une petite tache

Isaac
la source
+1. Oui bien sûr, c'est la réponse courte ;-)
sudodus