Qual è l'origine del prompt UNIX $ (dollaro)?

Il prompt UNIX utilizza un simbolo $ per indicare che l'input è previsto.

Stavo chiedendo perché questo simbolo fosse scelto – se c'è una ragione. Il dollaro sembra un po 'inaspettato. Il simbolo A > sarebbe stato più suggestivo a mio avviso.

Esploriamo un po ':

  • La versione 8 di Unix è facile. Sono ancora disponibili pagine manuali. Accedi alla pagina dello sh man e cerca il prompt. Si arriva ad un punto in cui si legge:

PS1 string primaria di richiesta, per impostazione predefinita “ $ ''.

PS2 Seconda string prompt, per impostazione predefinita “> ''.

  • Quindi vediamo se era la prima. La versione 7 di Unix era più difficile da tenere traccia. Fortunatamente Bell Labs detiene ancora il manuale (non c'erano pagine di uomo in 7. La versione 8 li ha introdotti). Ricercare nuovamente la pagina per il prompt e verrai a questo:

Quando hai finalmente passato questo process senza provocare alcun tipo di diagnostica, il programma risultante può essere eseguito dando il suo nome alla Shell in risposta al prompt `$ '.

  • E la versione 6? Versione 6 Unix non era difficile da tenere traccia. Ma difficile trovare le informazioni pertinenti. La documentazione è disponibile qui . Ho finalmente trovato sotto beg / u1 . A un certo punto leggi:

Il culmine degli sforzi di accesso è un segno percentuale "`% ''. Il segno di percentuale indica che .UC UNIX è pronto ad accettare comandi dal terminal.

Aha! Quindi la versione 6 non lo aveva. La versione 7 è stata la prima! Uscito nel 1979.

Contento? Odio di piovere sulla tua sfilata, ma non essere 🙂

Il problema è che la versione 6 è stata un'innovativa Unix. Guarda le varianti qui . Può essere che il segno $ ha un prompt dei comandi non è stato avviato nella versione 7, ma invece in una di queste varianti e poi l'idea incorporata in 7?

A questo punto mi sono stanco di cercare la documentazione dei sisthemes operativi da quando ero 6. Questo alless lo riduce notevolmente. Sappiamo che la versione 7 è stata la prima release di Labs per mostrare il segnale $ come un prompt dei comandi. Tutto quello che dobbiamo essere sicuro è che nessuna di quelle varianti di versione 6 lo ha introdotto.

Un ultimo pensiero però:
Mentre l'idea di $ essere un suggerimento per la shell di parola o script è attraente e ha tutto il senso, non aspettatevi che questo sarà mai confermato ufficialmente. Lo sviluppo di Unix è stato condiviso da un gruppo piuttosto grande di persone con preoccupazioni molto più grosse della vita, tenendo traccia di come si sia evoluto un simbolo. E alcuni di questi straordinari programmatori non sono più nemless tra noi.

Probabilmente, il meglio che puoi sperare di arrivare dalla domanda "Qual è l'origine del prompt UNIX $ (dollaro)?" è il nome del primo shell unix che lo introduce.

Purtroppo, non posso rispondere alla domanda, ma posso darti alcuni suggerimenti.

  • Il codice sorgente originale della shell bourne
    • msg.c , where è definito stdprompt
    • main.c , l'unico posto stdprompt è utilizzato
  • Un'intervista a Steve Bourne su sh
  • Le informazioni di contatto di Steve Bourne presso la sua azienda, El Dorado Ventures

Il prompt originale di Bourne shell era un guscio di lumaca, "@". Ricordo questo su UNIX 6 edizione che, credo, è prima che UNIX venga venduto in commercio. Così l'accostamento ad un $ sign potrebbe essere legato alla commercializzazione di UNIX, come suggeriva Robert, $ inferno.

In realtà, il prompt standard della row di command in Linux per un account utente normale utilizzando la shell di Bourne, Bash o Korn è il segno di dollaro ($) mentre il prompt di root è un marchio hash (#). Al contrario, il tradizionale richiamo della shell C è un segno percentuale (%).

Se wheressi indovinare, il $ ricorda la parola $ inferno, probabilmente perché è stato scelto.