GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So kommentieren Sie in Bash

Einführung

Kommentare beim Bash-Skripting und beim Programmieren im Allgemeinen tragen dazu bei, ein Programm leichter verständlich zu machen. Wenn ein Programm ausgeführt wird, ignoriert der Interpreter die kommentierten Zeilen. Kommentare tragen jedoch zur allgemeinen Lesbarkeit des Programms bei.

Wenn Sie sich den Code später ansehen, ist es hilfreich, beschreibende und wertvolle Erklärungen darüber zu haben, was der Code tut. Das Auskommentieren von Code zur späteren Verwendung ist eine gängige Praxis und ein wesentlicher Bestandteil der Programmierung und Bash-Skripterstellung.

Dieses Tutorial demonstriert die Verwendung von Kommentaren und die besten Vorgehensweisen zum Kommentieren in Bash-Skripten.

Voraussetzungen

  • Ein System, auf dem Linux ausgeführt wird.
  • Zugriff auf die Befehlszeile/das Terminal.
  • Ein Texteditor wie Vi/Vim.

Kommentieren in Bash

Beim Schreiben von Bash-Skripten wird jeder Text nach einem Hash-Zeichen (# ) gibt den Beginn eines Kommentars und jeglichen Text nach # an in derselben Zeile wird nicht ausgeführt.

Bei Verwendung eines Texteditors oder einer IDE werden Kommentare anders gefärbt als der Rest des Codes. Sie sind leicht zu erkennen und in erweiterten Codes zu suchen.

Die einzige Ausnahme ist der Shebang (#! ), die sich normalerweise in der ersten Zeile des Skripts befindet. Der Shebang teilt dem Betriebssystem mit, welchen Interpreter es für den Code verwenden soll.

Inline-Kommentare nach dem Shebang führen zu einem „Keine solche Datei oder Verzeichnis " Fehler.

Einzeiliger und Inline-Bash-Kommentar

Sowohl einzeilige als auch eingebettete Kommentare in Bash-Skripten beginnen mit dem Hash-Zeichen (# ):

# This is a comment

Das zusätzliche Leerzeichen nach dem Vorzeichen ist nicht erforderlich. Es hilft jedoch bei der Lesbarkeit.

Folgen Sie dem Beispiel unten, um ein Skript mit Kommentaren zu erstellen:

1. Öffnen Sie das Terminal (STRG +ALT +T ) und erstellen Sie ein Skript mit Vi:

vi comment.sh

2. Fügen Sie den folgenden Code hinzu:

# A comment is considered a single line if you do not press Enter. Below is the shebang, indicating the script uses the bash shell.
#!/bin/bash
# This is a single line comment above a command.
echo "Hello world!" # This is an inline comment.
# This is a single line comment below a command.

Das Skript enthält die folgenden Zeilen:

  • Zeile 1 ist ein einzeiliger Bash-Kommentar. Optisch erstreckt sich die Aussage über zwei Zeilen.
  • Zeile 2 ist der Kram. Das Skript wird mit dem Bash-Shell-Interpreter ausgeführt, der sich in /bin/bash befindet .
  • Zeile 3 und 5 sind auch einzeilige Kommentare vor bzw. nach einem Befehl.
  • Zeile 4 ist ein einfacher Echo-Befehl mit einem Inline-Kommentar.

3. Speichern und schließen Sie Vi:

:wq

4. Ändern Sie die Berechtigungen des Skripts in ausführbar:

chmod +x comment.sh

5. Zuletzt führen Sie das Skript aus mit:

./comment.sh

Die Kommentare werden beim Ausführen des Skripts nicht angezeigt .

Mehrzeiliger und Block-Bash-Kommentar

Um mehrzeilige Bash-Kommentare zu erstellen, beginnen Sie jede Zeile mit dem Hash-Zeichen (# ):

# This is the first line
# This is the second line

Eine weitere unkonventionelle Möglichkeit, mehrzeilige Blockkommentare zu erstellen, ist die Verwendung des Bash-Null-Befehls (: ) zusammen mit der Heredoc-Notation:

: << 'COMMENT'
This is the first line
This is the second line
COMMENT

Grundsätzlich unterstützt Bash keine Blockkommentare. Diese Methode funktioniert als Hack, wenn ein Blockkommentar für einen bestimmten Fall unerlässlich ist.

Probieren Sie das folgende Beispiel aus, um zu sehen, wie mehrzeilige Kommentare und Blockkommentare in Bash-Skripten funktionieren:

1. Öffnen Sie das Terminal (STRG +ALT +T ) und erstellen Sie ein Shell-Skript mit Vi:

vi multiline.sh

2. Kopieren Sie den folgenden Code und fügen Sie ihn ein:

: << 'COMMENT'
This is a multiline block comment
using the single quote heredoc
and bash null command.
COMMENT
echo "Hello world!"
# This is a multiline comment
# using the single line notation.

Der Code macht Folgendes:

  • Zeile 1 und 5 sind die Heredoc-Trennzeichen.
  • Zeilen 2-4 sind die Inhalte der Blockkommentare.
  • Zeile 6 ist das echo Befehl.
  • Zeilen 7-8 sind mehrere einzeilige Kommentare, die wie mehrzeilige Kommentare wirken.

3. Speichern Sie die Datei und schließen Sie Vi:

:wq

4. Ändern Sie die Skriptberechtigungen in ausführbar:

chmod +x multiline.sh

5. Führen Sie schließlich das Skript aus, um die Ausgabe anzuzeigen:

./multiline.sh

Die Terminalausgabe zeigt nur das Ergebnis im echo Befehl, während kommentierte Zeilen nicht angezeigt werden.

Best Practices und Tipps für Bash-Kommentare

Obwohl es keine speziellen Regeln für das Kommentieren in Bash gibt, sind bestimmte Praktiken bei der Verwendung von Kommentaren hilfreich. Diese Praktiken und Tipps sollen Ihnen helfen, das Beste aus dem Kommentieren in Bash herauszuholen.

1. Fügen Sie einen Datei-Header hinzu

Alle Skripte, die auf den ersten Blick nicht so offensichtlich sind, sollten einen Dateiheader enthalten. Der Header dient mehreren Zwecken:

  • Erklärt auf einen Blick, was der Code tut.
  • Gibt die Urheberschaft an.
  • Erläutert den Lizenzhinweis und stellt die Berechtigungserklärung für urheberrechtlich geschützten Code bereit.

Verwenden Sie Kommentare am Anfang eines Codes, um diese Punkte zu erläutern. Wenn ein Code Teil eines Projekts ist, geben Sie außerdem den Projektnamen an.

2. Vermeiden Sie unkonventionelle Blockkommentare

Obwohl Blockkommentare in Bash-Skripten möglich sind, ist es eine schlechte Angewohnheit, sie zu verwenden. Der Code ist nicht so leicht erkennbar wie ein normaler Kommentar, da Texteditoren ihn nicht als Kommentar darstellen. Darüber hinaus ist die Suche viel einfacher, wenn es eine einheitliche Kommentarsyntax gibt.

3. Vermeiden Sie lange und unnötige Kommentare

Halten Sie Kommentare so kurz wie möglich und auf den Punkt. Ausführlichkeit ist unnötig und erschwert das Lesen des Codes.

Kommentieren Sie auch nur schwer verständlichen Code. Ein Kommentar zu einem einfachen echo Befehl ist unnötig, während Code, der eine komplexe Regex-Anweisung verwendet, eine schnelle Angabe dessen erfordert, was er tut.

4. Kommentare und Funktionen

Alle Bash-Funktionen profitieren von Kommentaren, die den Zweck, die erwarteten Eingaben und Ausgaben erläutern. Die Ausnahme bilden kurze Codeabschnitte, die offensichtlich sind.

Geben Sie für jede Funktion Folgendes an:

  • Kurze Beschreibung des Vorgangs.
  • Eine Liste globaler oder geänderter Variablen.
  • Die erwarteten Eingabeargumente.
  • Was der Prozess an das Terminal ausgibt.
  • Die erwarteten Rückgabewerte.

Unten ist ein Beispiel für eine Funktion, die jeden der vorherigen Punkte dokumentiert:

PREFIX="Hello "
#### FUNCTION BEGIN
# Prints a greeting
# GLOBALS: 
# 	PREFIX
# ARGUMENTS: 
# 	Name as a String to use for greeting
# OUTPUTS: 
# 	Writes String to STDOUT
# RETURN: 
# 	0 if success, non-zero otherwise.
### FUNCTION END
function () {
	echo "${PREFIX}: $1!"
}

Passen Sie das Beispiel an Ihren Anwendungsfall an.

5. Konsequent kennzeichnen

Verwenden Sie Kommentare, um Code zu kennzeichnen, der verbessert, implementiert oder geändert werden muss. Erstellen Sie eine konsistente Kommentarbezeichnung für eine andere Aufgabe, um das Durchsuchen der Kommentare zu vereinfachen.

Beginnen und beenden Sie beispielsweise jede Funktionserklärung mit # FUNCTION BEGIN , oder fügen Sie # TODO hinzu Kommentare für zukünftige Aufgaben. Entscheiden Sie ebenso, welche Bezeichnungen geeignet erscheinen, und bleiben Sie im gesamten Code konsistent.


Linux
  1. Wie debuggt man ein Bash-Skript?

  2. Wie füge ich einen Unix/Linux-Benutzer in einem Bash-Skript hinzu?

  3. Vimrc – Wie blockiert man Kommentare?

  4. So echoen Sie eine neue Zeile in Bash-Shell-Skripten

  5. Wie liest man die vorletzte Zeile in einer Datei mit Bash?

So kommentieren Sie in Python

So lesen Sie eine Datei Zeile für Zeile in Bash

So zeigen Sie den Bash-Verlauf ohne Zeilennummern an

So kommentieren Sie mehrere Zeilen gleichzeitig im Vim-Editor aus

So führen Sie ein Bash-Skript aus

Wie bearbeite ich vorherige Zeilen in einem mehrzeiligen Befehl in Bash?