Quelle est l'origine de l'invite UNIX $ (dollar)?

L'invite UNIX utilise un symbole $ pour indiquer que votre saisie est attendue.

Je me demandais pourquoi ce symbole a été choisi, s'il y a une raison. Le dollar semble juste un peu inattendu. A > symbole aurait été plus suggestif à mon avis.

Examinons un peu:

  • Version 8 Unix est facile. Il existe encore des pages man disponibles. Accédez à la page sh man et recherchez l'invite. Vous arriverez à un point où vous lisez:

PS1 chaîne d'invite primaire, par défaut “ $ ''.

PS2 Chaîne d'invite secondaire, par défaut “> ''.

  • Alors, voyons si c'était le premier. Version 7 Unix était plus difficile à suivre. Heureusement, Bell Labs tient toujours le manuel (il n'y avait pas de pages man en 7. La version 8 les a introduites). Encore une fois, recherchez la page à l'avance et vous y reviendrez:

Lorsque vous avez finalement parcouru tout ce processus sans provoquer de diagnostic, le programme résultant peut être exécuté en donnant son nom au Shell en réponse à l'invite `$ '.

  • Qu'en est-il de la version 6? Version 6 Unix n'était pas difficile à suivre. Mais difficile à trouver l'information pertinente. La documentation est disponible ici . Je l'ai finalement trouvé sous beg / u1 . À un moment donné, vous avez lu:

L'aboutissement de vos efforts de connexion est un signe de pourcentage «%». Le signe de pourcentage signifie que .UC UNIX est prêt à accepter les commandes du terminal.

Aha! La version 6 ne l'avait donc pas. La version 7 était la première! Sorti en 1979.

Content? Déteste de pleuvoir sur ton défilé, mais ne sois pas 🙂

Le problème est que la version 6 était un Unix inspirant. Regardez les variantes ici . Est-ce que le signe $ a une invite de commande n'a pas été démarré dans la version 7, mais plutôt dans l'une de ces variantes, puis l'idée est-elle intégrée à 7?

À ce stade, je me suis envie de chasser pour la documentation des systèmes d'exploitation à partir d'un moment où j'avais 6. Cela l'atténue considérablement. Nous savons que la version 7 a été la première version de Bell Labs pour afficher le signe $ comme invite de commande. Tout ce dont nous devons être sûr est qu'aucune de ces variantes de la version 6 ne l'a introduit.

Une dernière pensée cependant:
Alors que l'idée de $ être un indice pour le mot shell ou script est attrayante et a tout son sens, ne vous attendez pas à ce que cela soit officiellement confirmé. Le développement d'Unix a été partagé par un assez grand groupe de personnes avec des préoccupations beaucoup plus importantes dans la vie, puis on a suivi comment un symbole a évolué. Certains de ces programmeurs extraordinaires ne sont plus parmi nous.

Très probablement, le meilleur que vous puissiez espérer obtenir de la question "Quelle est l'origine de l'invite UNIX $ (dollar)?" Est le nom du premier shell unix qui l'introduit.

Malheureusement, je ne peux pas répondre à la question, mais je peux vous donner quelques conseils.

  • Le code source original de la coquille bourne
    • Msg.c , où stdprompt est défini
    • Main.c , le seul endroit où stdprompt est utilisé
  • Une interview avec Steve Bourne à propos de sh
  • Les informations de contact de Steve Bourne chez El Dorado Ventures

L'invite originale Bourne était une coquille d'escargot, "@". Je me souviens de cela sur la 6ème édition d'UNIX qui, je crois, est avant que UNIX ne soit vendu commercialement. Ainsi, le passage à un signe $ pourrait être lié à la commercialisation d'UNIX, comme Robert l'a suggéré, l'enfer.

En fait, l'invite de ligne de commande standard dans Linux pour un compte d'utilisateur normal utilisant Bourne, Bash ou Korn est le signe dollar ($) alors que l'invite racine est une marque de hachage (#). En revanche, l'invite du shell C traditionnel est un signe de pourcentage (%).

Si je devais deviner, le $ rappelle le mot "enfer", qui est probablement pourquoi il a été choisi.