Es ist sehr beliebt, ein $ vor Zeilen zu setzen, die als Befehl in der Dokumentation von Code, der das Terminal (d. h. die Kommandozeile) betrifft, gedacht sind.
So wie das
$ brew install somepackage
Der Sinn dahinter ist, dass es die Eingabeaufforderung nachahmt, die Sie möglicherweise auf Ihrer Kommandozeile sehen. Hier ist meine:

Das Dollarzeichen ($) ist also eine kleine Technik, die Leute verwenden, um anzuzeigen, dass diese Codezeile auf der Kommandozeile ausgeführt werden soll.
Kleinere Schwierigkeiten
Das Problem dabei ist, dass ich (und ich wette, die meisten anderen Leute auch) Befehle wie diese aus der Dokumentation kopieren und einfügen werde.
Wenn ich den obigen Befehl genau so, wie er geschrieben ist, in meinem Terminal ausführe…

…dann funktioniert er nicht. $ ist kein Befehl. Wie geht man damit um? Man muss es einfach wissen. Man muss dieses Problem schon einmal gehabt und irgendwie gelernt haben, dass das, was die Dokumentation tatsächlich aussagt, darin besteht, den Befehl brew install somepackage (ohne das Dollarzeichen) auf der Kommandozeile auszuführen.
Ich sage kleinere Schwierigkeiten, da es in jedem Beruf der Welt allerlei Dinge wie diese gibt. Wenn ich etwas wie font-size: 2.2rem in einen Blogbeitrag schreibe, sage ich nicht auch: „Fügen Sie diese Deklaration in eine Regelmenge in einer CSS-Datei ein, die Ihre HTML-Datei verlinkt.“ Das muss man eben wissen.
Behebung mit CSS
Die Tatsache, dass es sich nur um kleinere Schwierigkeiten handelt und die Technik voller Dinge ist, die man einfach wissen muss, bedeutet nicht, dass wir nicht versuchen können, dies zu beheben und uns ein wenig zu verbessern.
Die Idee für diesen Beitrag stammt aus diesem Tweet, der viel mehr Likes erhielt, als ich erwartet hatte
Um das zu erweitern, gehe ich davon aus, dass Sie Ihre Dokumente wahrscheinlich ungefähr so formatieren:
<p>Install package like:</p>
<pre><code class="command">brew install package</code></pre>
Jetzt können Sie das $ als Pseudo-Element und nicht als tatsächlichen Text einfügen
code.command::before {
content: "$ ";
}
Jetzt sparen Sie nicht nur ein Zeichen im HTML, das $ kann nicht ausgewählt werden, da Pseudo-Elemente so funktionieren. Sie sind also jetzt im UX-Bereich etwas besser. Selbst wenn der Benutzer auf die Zeile doppelklickt oder versucht, alles auszuwählen, erhält er nicht das $, das das Kopieren und Einfügen ruiniert.
Hoffentlich sind sie nicht gleichermaßen frustriert, weil sie das $ nicht kopieren können. 😬
Also, jedenfalls, etwas wie dieses unglaubliche Design von mir
Behebung mit Text
Viele Dokumentationen für Code-Dinge befinden sich an öffentlichen Git-Repository-Orten wie GitHub. Sie haben keinen Zugriff auf CSS, um das Aussehen von GitHub zu gestalten. Obwohl Tricksereien verfügbar sind, können Sie dort nicht einfach eine Zeile CSS einfügen, um Dinge zu formatieren.
Wir müssen (gasp) unsere Worte benutzen
<p>
Install the package by entering this
command at your terminal:
</p>
<kbd class="command">brew install package</kbd>
Andere Gedanken
- Sie würden es wahrscheinlich gar nicht erst mit Syntax-Highlighting versehen. Ich glaube nicht, dass ich jemals ein Terminal gesehen habe, das Befehle syntaxhervorhebt, während Sie sie eingeben.
- Eric Meyer schlug das
<kbd>-Element vor, das das Keyboard Input Element ist. Das gefällt mir. Ich habe lange Zeit<code>verwendet, aber ich denke,<kbd>ist hier angemessener. - Tim Chase schlug vor, eine
<span>zu verwenden und die Eingabeaufforderung in den HTML-Code aufzunehmen, damit Sie sie bei Bedarf einzigartig formatieren können, einschließlich der Möglichkeit, sie mituser-select: none;nicht auswählbar zu machen. - Justin Searls hat einen Dotfiles-Trick, bei dem, wenn Sie versehentlich das
$kopieren/einfügen, es einfach ignoriert wird und alles danach ausgeführt wird. - Jackson Bates rät zur Vorsicht beim Kopieren und Einfügen in ein Terminal.
- Ich habe erfahren, dass
$auch eine Möglichkeit ist, „nicht privilegierte“ Befehle zu bezeichnen, während # für Root-Befehle steht. Ein Teil des Grundes dafür ist, dass, wenn Sie einen Root-Befehl kopieren und einfügen, er nicht ausgeführt wird, da er als Kommentar erkannt wird.
Das ist es also, was $ repräsentiert, ich habe mich jahrelang gefragt. Auf meinem Windows-PC habe ich nie eine Art $ gesehen. Danke für die Aufklärung.
Das Dollarzeichen im Befehl bedeutet, dass der Befehl als normaler Benutzer ausgeführt wird.
Wenn der Befehl von einem Administrator (typischerweise „root“) ausgeführt wird, ist das Zeichen #
Hallo, wie immer ein toller Beitrag. Die $ Prompt zeigt nicht nur an, dass das Folgende etwas ist, das Sie in einem Terminal ausführen sollten, sondern auch, dass der Befehl als normaler Benutzer ausgeführt werden sollte. Wenn Sie den Befehl mit Superuser-Rechten ausführen müssen, wird dem Befehl ein # Prompt vorangestellt. Ich denke also, das sollte bei der Umsetzung berücksichtigt werden.
Ja
einige Gedanken zu Ihren anderen Gedanken
Ich kenne eine Shell mit Syntax-Highlighting: sie heißt fish und ist ziemlich nett, obwohl ihre Skripte nicht mit bash / sh kompatibel sind
Zumindest unter Linux ist bash normalerweise so konfiguriert, dass der $ Prompt durch ein # ersetzt wird, wenn Sie als root angemeldet sind
Wow, das ist pure Genialität! Es wäre großartig, es in den Foren und in der Dokumentation auf Git-Seiten implementiert zu sehen.
So viele Jahre lang hatte ich Angst vor dem Terminal; jedes Mal, wenn ich versuchte, einen Befehl auszuführen, verfolgte mich das "$ nicht gefunden" buchstäblich. Ich war mir nie sicher, ob das Ausführen des Befehls ohne ihn dasselbe bedeuten würde oder ob er Chaos verursachen würde.
Jetzt unterrichte ich CLI-Automatisierung; ich liebe es, Skripte zu schreiben, um Routinearbeit zu automatisieren. Ich wünschte, ich hätte früher damit angefangen.
Bis heute glaube ich, dass das Hinzufügen eines
$es für Anfänger schwieriger macht, sich an die Idee der Kommandozeile zu gewöhnen. Es ist nicht anfängerfreundlich – der fehlende Kontext.Ich würde Entwickler ermutigen, Text zu verwenden, um die Befehle zu erklären und sie zugänglicher zu machen, anstatt ein
$zu verwenden, um einen zu bezeichnen.Und danke, Chris, dass Sie darüber geschrieben haben. Ein CSS-Trick wie dieser hilft definitiv.
PowerShell macht eine Art Syntax-Highlighting. Das ist bis zu einem gewissen Grad nützlich.
Übrigens, sollte das Beispiel nicht in
<pre><kbd>sein?Ich bin ziemlich sicher, dass ich das in irgendeinem Stack Exchange-Netzwerk gefragt habe, aber leider kann ich es nicht finden. Wenn ich mich recht erinnere, schlug eine Antwort vor, dass der Grund für den Druck von
$in einem Codebeispiel darin besteht, Leute tatsächlich davon abzuhalten, eine Reihe von Zeilen zu kopieren, um sie in ihr Terminal einzufügen, um es schwieriger zu machen, zu einem unerwünschten Ergebnis zu gelangen.Ich würde sagen, dass zsh-syntax-highlighting (gekoppelt mit zsh-autosuggestions) mein Leben für immer verändert hat… :P
Die
fish-Shell und Powershell haben integriertes Syntax-Highlighting.