¿Por qué se eligió `.` para representar el comando punto?

8

Me pregunto, después de ver esta pregunta, ¿por qué .se eligió el símbolo para representar el comando punto ?

No soy capaz de encontrar mucho al respecto de origen o que lo creó y soy curioso en cuanto a por qué un punto final fue elegida para representar a este comando.

jesse_b
fuente
2
¿Intentaste preguntarle a Stephen Bourne?
schily
1
@schily: No estaba disponible para chatear
jesse_b
8
Porque sería una tontería llamar a "%" el "comando punto".
Ignacio Vazquez-Abrams
1
@slm: Correcto, ¿por qué se .usó para representar el comando punto (fuente)? ¿Está relacionado con .ser el directorio actual?
jesse_b
1
@Rob: No, no lo es.
jesse_b

Respuestas:

7

La primera mención del comando dot que puedo encontrar está en el manual para el shshell de Stephen Bourne en la versión 7 de Unix (puede ser anterior, pero evidentemente no está presente como uno de los comandos integrados shen la versión 6 ).

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

El punto, en términos bastante generales, parece haberse asociado con "aquí" o "actual". El .directorio es el directorio actual , y la .dirección en el adbdepurador de la misma versión de Unix tenía una .dirección que era la dirección actual . Del mismo modo, al ingresar una .línea nueva seguida en el ededitor volverá a mostrar la línea actual del búfer de edición (se .dirige a la línea actual). El punto también significa el nodo actual en ciertos lenguajes de consulta estructurados para XML, JSON, YAML, etc. (aunque estos son inventos posteriores).

Por lo tanto, creo que no es demasiado descabellado especular que el .comando en el shell también significa "aquí" o "actual". En particular, "ejecute este script en el entorno actual ".

El punto también es muy rápido y fácil de escribir, y tener un comando corto para hacer una tarea común (ya sea en ed, adbo en el esqueleto) pueden haber sido otra razón por la cual no se utilizó otro nombre más largo.


Tenga en cuenta que no tengo una versión funcional de la versión sh7 para probar cosas, y que no puedo encontrar la implementación real de. la shell de Bourne de esa versión en el repositorio de Git mencionado anteriormente, por lo que no puedo decir seguro que realmente hizo exactamente lo que hace hoy. Pero es probable que así fuera.

Kusalananda
fuente
+1. Gracias por esta larga respuesta. Por cierto, ¿hay alguna diferencia entre punto y fuente cuando se usa para ejecutar comandos desde un archivo: . scriptfileversus source scriptfileen bash? En otras palabras, ¿son dos nombres del mismo comando incorporado?
sudodus
@sudodus Son equivalentes. Sin sourceembargo, el comando tiene un historial diferente, ya que se hereda de csh.
Kusalananda
2

Puede ser porque dotes el nombre del símbolo ..

1: un pequeño lugar

Isaac
fuente
+1. Sí, por supuesto, esta es la respuesta corta ;-)
sudodus