Zum Inhalt springen

Heredoc

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 25. Oktober 2023 um 10:55 Uhr durch 176.198.236.19 (Diskussion) (Bezeichner unwahrscheinlich (`cat <<IFS=5 ...`), transientes Token? Overhead?).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Ein Heredoc, auch here document (von englisch, wörtlich hier dokument) genannt, ist ein Sprachkonzept der Informatik zur Spezifikation eines Zeichenfolgenliterals in Kommandozeileninterpretern wie beispielsweise der bash, Windows PowerShell und der Bourne-Shell sowie in Programmiersprachen wie etwa Perl, PHP, Python und Ruby. Der Bezeichnung entsprechend dienen Heredocs zur Definition von Textabschnitten. Im Unterschied zu herkömmlichen Stringdefinitionen werden enthaltene Zeilenumbrüche sowie Einzüge und viele Sonderzeichen im Text bewahrt. Einige Sprachen ermöglichen auch die Interpolation von Variablen oder auch Programmcode innerhalb der Zeichenfolge.

Je nach Programmiersprache werden Heredocs durch <<, <<<, <!--, <<- oder ähnliche Zeichenfolgen eingeleitet, gefolgt von einer weitgehend frei wählbaren Zeichenfolge, die das Ende des Heredoc markiert (Delimiter); in der nächsten Zeile beginnt der Text des Heredoc. Das Ende des Heredoc wird durch eine Zeile mit dem zuvor gewählten Delimiter und gegebenenfalls einem Semikolon oder einem Zeilenende markiert.

Viele UNIX-Shells, einschließlich der Bourne-Shell (sh) und zsh, bieten Heredocs als eine Möglichkeit, um Eingabewerte für Kommandozeilenbefehle anzugeben. Die Microsoft PowerShell bietet eine ähnliche Funktionalität, sowohl interaktiv in der Shell selbst, als auch über eine spezielle Skriptsyntax in Skriptdateien, die in der PowerShell ausführbar sind.

Beispielhafte Umsetzung in PHP:<ref>David Sklar, Adam Trachtenberg: PHP Kochbuch, O’Reilly, Köln, 2003, ISBN 3-89721-351-6, S. 2–3</ref><ref>Heredoc auf php.net</ref>

<syntaxhighlight lang="PHP"> <?php echo <<<ENDE Dies ist ein Heredoc zweite Zeile ENDE; ?> </syntaxhighlight>

Ein Beispiel in Python:<ref>devcamp.com Guide to Heredocs in Python</ref> <syntaxhighlight lang="PYTHON"> text="""{name} wohnt in {place}""" print(text.format(name='Christoph', place='Chur')) </syntaxhighlight> Gibt

Christoph
wohnt in
Chur

aus.

Siehe auch

Einzelnachweise

<references />