So verwenden Sie hier Dokument in Bash -Programmierung

So verwenden Sie hier Dokument in Bash -Programmierung
Ein Code- oder Textblock, der in das Befehlskript oder das interaktive Programm weitergeleitet werden kann, wird hier Dokument oder Heredoc genannt. Verschiedene Arten von Skriptsprachen wie Bash, SH, CSH, KSH usw., Kann die Texteingabe direkt mithilfe des Here-Dokuments ohne Verwendung einer Textdatei übernehmen. Wenn der Codierer weniger Textdaten benötigt, ist die Verwendung von Code und Daten in derselben Datei die bessere Option, und dies kann einfach mithilfe hier-dokument im Skript erfolgen. Ohne Skriptsprache kann hier Dokument auch in verschiedenen hochrangigen Sprachen wie PHP, Perl usw. verwendet werden. Wie Sie hier das Dokument im Bash-Skript verwenden können, wird in diesem Tutorial angezeigt.

Um das hier-dokument in jedem Bash-Skript zu verwenden, müssen Sie das Symbol verwenden << followed by any delimiting identifier after any bash command and close the HereDoc by using the same delimiting identifier at the end of the text. The syntax of writing HereDoc is shown below.

Befehl << HeredocDelimiter


Heredocdelimiter

Beispiel 1: Verwendung eines einfachen Heredoc-Textes

Wenn der Heredoc in einem Skript verwendet wird. Angenommen, der Befehl ist ''Katze'Und der Heredoc -Trennzeichen ist TEXT HINZUFÜGEN. Erstellen Sie eine Bash -Skriptdatei mit dem Namen Heredoc1.verprügeln mit dem folgenden Code, um die einfache Verwendung von Heredoc zu überprüfen.

#!/Bin/Bash
Katze <Dieser Text ist
Hinzugefügt von hier Dokument
TEXT HINZUFÜGEN

Führen Sie den folgenden Befehl aus, um das Skript auszuführen.

$ Bash Heredoc1.verprügeln

Ausgang:

Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel-2: Verwendung von Heredoc mit '-' Symbol

Heredoc verwendet Die '-' Symbol, um einen Registerkarte aus jeder Zeile des Heredoc -Textes zu unterdrücken. Im folgenden Beispiel, Tab Zu Beginn jeder Zeile wird Platz hinzugefügt und die '-' ' Symbol wird vor dem Starttrainer verwendet. Wenn das Skript ausgeführt wird, werden alle Registerkartenbereiche vom Start jeder Zeile weggelassen, es wird jedoch keinen Einfluss auf den normalen Raum erzeugt. Erstellen Sie eine Bash -Datei mit dem Namen Heredoc2.verprügeln mit dem folgenden Skript, um die Funktion von zu testen '-' '.

#!/Bin/Bash
Katze <<-ADDTEXT2
Zeile 1: Hier ist das Dokument hilfreich, um kurze Text zu drucken
Zeile-2: Hier kann Dokument verwendet werden, um Text zu formatieren
Zeile 3: Hier können Dokument Variablen innerhalb des Textes drucken
Zeile-4: Hier Dokument mit '-' entfernt den Registerkartenplatz aus der Zeile
AddText2

Führen Sie den folgenden Befehl aus, um das Skript auszuführen.

$ Bash Heredoc2.Sch

Ausgang:

Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt. Der Tab Der Platz wurde aus dem Heredoc -Inhalt entfernt.

Beispiel-3: Verwendung der Variablen im Heredoc-Text

Erstellen Sie ein neues Bash -Skript mit dem folgenden Code. Hier zwei Variablen genannt Start und Ende werden deklariert. Diese Variablen werden im Heredoc -Text verwendet. Wenn Sie beim Starttrainer des Heredoc einen Anführungszeichen verwenden, druckt der Wert der Variablen nicht in der Konsole.

#!/Bin/Bash
Start = "Hallo allerseits"
Ende = "Viel Glück"
Katze <$ Start
Willkommen auf der Linux -Blog -Site.
$ Ende
AddText3

Führen Sie den folgenden Befehl aus, um das Skript auszuführen.

$ Bash Heredoc3.Sch

Ausgang:

Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt. Die Ausgabe zeigt den Heredoc -Inhalt mit dem Wert der Variablen.

Beispiel-4: Erstellen Sie eine neue Bash-Datei mit Herdoc

In den vorherigen Beispielen wird gezeigt, wie Sie Heredoc in jedem Bash -Skript verwenden können. Sie können auch eine neue Bash -Datei mit Heredoc erstellen, die im nächsten Teil dieses Tutorials angezeigt wird. Erstellen Sie eine neue Bash -Datei mit dem Namen Heredoc4.Sch mit dem folgenden Code. Hier, die Neuheit Die Variable wird deklariert, um den Dateinamen des neuen Bash -Skripts festzulegen, das nach der Ausführung von erstellt wird Heredoc4.Sch Datei. Nach der Ausführung eine neue Bash -Datei mit dem Namen Ausgang.Sch wird erstellt.

#!/Bin/Bash
Newfile = output.Sch
(
Katze < $NewFile

Führen Sie die folgenden Befehle aus, um das obige Skript zu testen. Der erste Befehl führt die Hauptskriptdatei aus. Der zweite Befehl zeigt den Inhalt der neu erstellten Datei an. Im dritten Befehl wird die neu erstellte Bash -Datei ausgeführt.

$ Bash Heredoc4.Sch
$ CAT -Ausgabe.Sch
$ Bash Output.Sch

Ausgang:

Nach der Ausführung des Skripts wird die folgende Ausgabe angezeigt.

Beispiel-5: Verwenden Sie die Funktion mit Heredoc

Sie können Eingangswerte an die Variablen jeder Funktion des Bash -Skripts aus dem Heredoc -Inhalt übergeben. Erstellen Sie eine andere neue Bash -Datei mit dem Namen Heredoc5.Sch Um zu testen, wie Funktion mit Er Heredoc verwendet werden kann. Fügen Sie der Datei den folgenden Code hinzu. Eine Funktion namens Buchinfo wird im Skript deklariert, das Daten aus dem Heredoc -Text entnimmt. Sechs Variablen sind in der Funktion mit dem Namen ISBN, BookName, Authorname, Ausgabe, Veröffentlichung und Preis deklariert. Um den Wert der Variablen ordnungsgemäß festzulegen, müssen Sie die Reihenfolge der Werte im Heredoc -Abschnitt gemäß den in der Funktion deklarierten Variablen beibehalten. Nach dem Einstellen der Daten in den Funktionsvariablen wird der Preiswert mit einem Rabatt von 10% berechnet und die Werte aller Variablen in der Konsole gedruckt.

#!/Bin/Bash
#Deklare die Funktion, mit der Daten von hier abgerufen werden
BookInfo ()

Lesen Sie ISBN
Lesen Sie BookName
Lesen Sie Authorname
Lesen Sie Ausgabe
Veröffentlichung lesen
Preis lesen

# Hier dokumentieren Sie den Dokumententeil, um Daten in die Funktion zu senden
Buchinfo <ISBN-78633567809
Easy Laravel 5
W. Jason Gilmore
9. Ausgabe
Learpub
100
AddText5
# Drucken Sie den Wert der Funktionsvariablen nach Berechnung des Preiswerts mit 10% Rabatt
((Preis = $ Preis- $ Preis*10/100))
echo "$ bookName"
echo "$ authorname"
echo "$ edition, $ publication"
echo "$" $ Preis

Führen Sie den folgenden Befehl aus, um das Skript auszuführen.

$ Heredoc5.verprügeln

Ausgang:

Hier wurde der Wert der Preisvariablen auf 100 festgelegt. Nach einem Rabatt von 10% auf den Preiswert wurde der Wert auf 90 festgelegt. Nach der Ausführung wird die folgende Ausgabe im Terminal angezeigt.

Beispiel-6: Führen Sie Befehle im Heredoc aus

Erstellen Sie eine Bash -Datei mit dem Namen Heredoc6.verprügeln mit dem folgenden Skript zur Ausführung 'Date', 'pwd', Und 'Wer bin ich'Befehl mit' 'sudo' Befehl.

#!/Bin/Bash
# Fügen Sie drei Befehle im Heredoc -Inhalt mit dem Befehl "sudo" hinzu
sudo -s <Datum
PWD
Wer bin ich
BEFEHL

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. Die Ausgabe der drei Befehle hat in der Ausgabe gedruckt.

Beispiel-7: Verwendung von Heredoc, um mehrere Zeilen in eine Datei zu schreiben

Erstellen Sie eine Bash -Datei mit dem Namen Heredoc6.verprügeln mit dem folgenden Skript, um mehrere Zeilen in der genannten Textdatei hinzuzufügen Temperatur.txt und drucken Sie den Inhalt der Datei aus. Nach der Ausführung des Code werden drei Zeilen zur Textdatei hinzugefügt.

#!/Bin/Bash
: 'Dieses Skript schreibt mehrere Zeilen
in eine Textdatei
''
# Schreiben Sie mehrere Zeilen in eine Datei mit Heredoc in eine Datei
Katze> 'Temperatur.txt' <Bash ist eine beliebte Skriptsprache.
Viele Verwaltungsaufgaben können leicht erledigt werden
Durch die Verwendung von Bash -Skript.
Filecontent
# Drucken Sie den Inhalt der Datei
Katzentemperatur.txt

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. Die Ausgabe zeigt, dass drei Zeilen in der hinzugefügt werden Temperatur.txt Datei.

Beispiel-8: Verwenden Sie Heredoc mit Pipe, um den Inhalt zu durchsuchen und zu ersetzen

Der Heredoc -Eingang kann ebenfalls gelobt werden. Erstellen Sie eine Bash -Datei mit dem folgenden Skript, um ein bestimmtes Zeichen aus dem Heredoc -Inhalt zu durchsuchen und zu ersetzen. Der erste Heredoc wird den Originaltext drucken und der zweite Heredoc den ersetzten Text druckt. Der Befehl "SED" wurde hier verwendet, um alle Instanzen des Charakters zu ersetzenA' von 'A''.

#!/Bin/Bash
echo "Der ursprüngliche Inhalt ist:"
Katze <<'ORIGINAL'
Bash ist eine Shell -Skriptsprache
HTML ist eine Markup -Sprache
JavaScript ist eine clientseitige Skriptsprache
ORIGINAL
# Fügen Sie eine neue Linie hinzu
Echo
Echo "den Inhalt nach dem Ersetzen von 'a' durch 'a':"
Katze <<'REPLACE' | sed 's/a/A/g'
Bash ist eine Shell -Skriptsprache
HTML ist eine Markup -Sprache
JavaScript ist eine clientseitige Skriptsprache
ERSETZEN

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. In der Ausgabe wurden alle 'a' durch 'a' ersetzt.

Beispiel-9: Verwendung von Heredoc, um den Zeilenblock zu kommentieren

Eine der wichtigsten Verwendung von Heredoc besteht darin, mehrere Zeilen des Bash -Skripts zu kommentieren. Erstellen Sie eine Bash -Datei mit dem folgenden Skript, um zu finden, dass ein Jahr ein Schaltjahr ist oder nicht. Der Zweck des Skripts wurde durch Multi-Line-Kommentare unter Verwendung von Heredoc beschrieben.

#!/Bin/Bash
<Dieses Skript wird verwendet, um es herauszufinden
Ein Jahr ist ein Schaltjahr oder nicht ein
Schaltjahr
Multiline_Comment
# Nehmen Sie den 4-stelligen Jahreswert vom Benutzer
echo -n "Geben Sie den vierstelligen Jahreswert ein:"
Lesen Sie Yr
# Überprüfen Sie, ob der Wert der genommenen Jahr ein Sprung ist oder nicht ein Schaltjahr
if [$ (($ yr%400)) -Eq 0]; Dann
Echo "$ yr ist ein Schaltjahr."
ELIF [$ (($ yr%100)) -Eq 0]; Dann
Echo "$ yr ist kein Schaltjahr."
ELIF [$ (($ yr%4)) -Eq 0]; Dann
Echo "$ yr ist ein Schaltjahr."
anders
Echo "$ yr ist kein Schaltjahr."
fi

Ausgang:

Die folgende Ausgabe wird nach der Ausführung des obigen Skripts angezeigt. Die folgende Ausgabe zeigt, dass 2008 ein Schaltjahr und 2021 kein Schaltjahr ist.

Abschluss:

Die verschiedenen Verwendungen des Heredoc -Dokuments haben in diesem Tutorial unter Verwendung mehrerer Beispiele gezeigt. Es kann mit verschiedenen Arten von Shell-Befehlen und im Bash-Skript mit mehreren Zeilen Kommentaren verwendet werden. Die Verwendung des Heredoc wird für die Bash -Benutzer nach dem Üben der Beispiele dieses Tutorials gelöscht.