Was ist ein Here-Dokument?
In Bezug auf Computer und Computerprogrammierung ist ein Dokument hier eine Liste von Texten, die zur Definition von Eingaben verwendet werden, die mithilfe eines speziellen Operators an ein Programm übergeben werden sollen, damit außergewöhnlich lange Befehls- oder Textblöcke einfacher übergeben werden können. "Here-Dokument" oder "heredoc" ist eher ein allgemeiner Begriff, da die genaue Implementierung der Funktionsweise eines Here-Dokuments und der möglichen Inhalte von einem Betriebssystem, einer Anwendung oder einer Programmiersprache zur nächsten variieren kann. Ungeachtet des Namens handelt es sich bei einem Here-Dokument normalerweise nicht um eine separate Datei, sondern um einen Textblock in einem Skript oder um eine Art Typisierung oder Einfügung direkt am Ende eines Programmbefehls. Die Hauptverwendung für ein Dokument hier ist die Ausführung von Programmen über ein Skript oder eine Batch-Datei über die Befehlszeile, wobei der Heredoc entweder eine Liste von Anweisungen für die Ausführung eines Programms oder Eingaben für die Verarbeitung des Programms bereitstellt. Abhängig von vielen Faktoren kann ein Dokument hier eine einfache Liste von Wörtern sein oder komplexe Variablen oder Programmcode enthalten, die das Betriebssystem oder die Zielanwendung entschlüsseln kann.
Grundsätzlich handelt es sich bei einem Here-Dokument nur um eine Textliste, die Formatierungszeichen wie Tabulatoren, Zeilenumbrüche und Zeilenumbrüche enthält. Es ist eine bequeme Möglichkeit, Argumente an ein Programm zu übergeben, das über die Befehlszeile ausgeführt wird, insbesondere wenn eine Wrapper-Datei wie ein Skript oder eine Batch-Datei verwendet wird. Der in einem heredoc enthaltene Text wird so an das ausführende Programm gesendet, als würde er vom Benutzer genau so eingegeben, wie er angezeigt wird. Auf diese Weise kann ein einzelner heredoc immer wieder verwendet werden, um einem Programm dieselbe Eingabe zu geben, sodass es dieselben Aufgaben wiederholt ausführen kann, ohne dass der Benutzer tatsächlich alles manuell neu eingeben muss.
Ein Beispiel für die Funktionsweise eines Here-Dokuments ist ein einfaches Befehlszeilenprogramm sendmail, mit dem E-Mails gesendet werden. Bei der Ausführung fordert das Programm sendmail den Benutzer zunächst auf, die Ziel-E-Mail-Adresse einzugeben. Anschließend werden der Betreff der E-Mail und schließlich der Text der E-Mail abgefragt. Wenn er über die Befehlszeile ausgeführt wird, antwortet der Benutzer auf jede Eingabeaufforderung, indem er die Informationen eingibt, die Eingabetaste drückt und auf die Antwort des Programms wartet. Wenn ein heredoc in einer Wrapper-Datei verwendet wird, können alle Informationen, die an das sendmail-Programm gesendet werden sollen, im Voraus eingegeben werden, einschließlich der Eingabetasten, und in der Wrapper-Datei gespeichert werden. Auf diese Weise wird beim Ausführen des sendmail-Programms mit dem heredoc die Eingabe automatisch in das Programm eingegeben und eine E-Mail gesendet, ohne dass der Benutzer weitere Schritte ausführen muss.