Perché è stato scelto `.` per rappresentare il comando punto?


8

Mi chiedo dopo aver visto questa domanda perché il .simbolo è stato scelto per rappresentare il comando punto ?

Non sono in grado di trovare molto sulla sua origine o su chi l'ha creato e sono curioso di sapere perché è stato scelto un punto fermo per rappresentare questo comando.


2
Hai provato a chiedere a Stephen Bourne?
schily,

1
@schily: non era disponibile per chattare
jesse_b

8
Perché sarebbe sciocco chiamare "%" il "comando punto".
Ignacio Vazquez-Abrams,

1
@slm: Corretto, perché è stato .usato per rappresentare il comando punto (sorgente)? È correlato .all'essere la directory corrente?
jesse_b,

1
@Rob: No non lo è.
jesse_b

Risposte:


7

La prima menzione del comando punto che posso trovare è nel manuale della shshell di Stephen Bourne nella Unix Release 7 (potrebbe essere più vecchia, ma evidentemente non presente come uno dei comandi integrati shnella Release 6 ).

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

Il punto, in termini abbastanza generali, sembra essere stato associato a "qui" o "corrente". La .directory è la directory corrente e l' .indirizzo nel adbdebugger della stessa versione di Unix aveva un .indirizzo che era l' indirizzo corrente . Allo stesso modo, inserendo a .seguito da newline ednell'editor verrà nuovamente visualizzata la riga corrente del buffer di modifica ( .indirizza la riga corrente). Il punto indica anche il nodo corrente in alcuni linguaggi di query strutturati per XML, JSON, YAML, ecc. (Sebbene si tratti di invenzioni successive).

Pertanto, penso che non sia troppo preso per ipotizzare che il .comando nella shell significhi anche "qui" o "corrente". In particolare, "esegui questo script nell'ambiente corrente ".

Il punto è anche abbastanza veloce e facile da digitare, e con una breve comando per fare un compito comune (sia che si tratti ed, adbo nel guscio) potrebbe essere stato un altro motivo per cui un altro nome più lungo non è stato utilizzato.


Si noti che non ho una versione funzionante di shdalla versione 7 alla prova le cose, e che non riesco a trovare l'effettiva implementazione di. in guscio di Bourne da quella di rilascio nel repository Git di cui sopra, in modo da non posso dire di sicuro che ha fatto esattamente quello che fa oggi. Ma è probabile che lo abbia fatto.


+1. Grazie per questa lunga risposta. A proposito, c'è qualche differenza tra punto e sorgente quando usato per eseguire comandi da un file: . scriptfilecontro source scriptfilein bash? In altre parole, sono due nomi dello stesso comando integrato?
sudodus,

@sudodus Sono equivalenti. Il sourcecomando ha comunque una storia diversa, poiché ereditato da csh.
Kusalananda

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.