
Ich bin gerade auf den Befehl gestoßen <<
, der folgendermaßen verwendet wird:
cat > outfile.txt <<EOF
Multi-line content
that will be written to outfile.txt
EOF
Ich habe zwar keine Ahnung, wie das heißt, würde aber gern den Namen wissen, vor allem, damit ich mehr über die Syntax herausfinden kann. Leider funktioniert das Googeln nach „<<“ einfach nicht.
Antwort1
Das nennt man ein „Here-Dokument“.
Antwort2
Diese Form der Umleitung wird alshier Dokumentoderhierdoc. Es leitet den Inhalt des angegebenen Inline-Dokuments an einen Befehl weiter. Das Dokument wird durch das angegebene Wort ( EOT
unten) abgegrenzt. Wenn Sie das Wort oder einen Teil des Wortes danach in Anführungszeichen setzen, <<
wird ein in Anführungszeichen gesetztes Here-Dokument erstellt, in dem die Shell keine Erweiterungen durchführt.
$ tac << EOT
> 123
> 456
> EOT
456
123
Antwort3
Im Unix-Kontext ist es eigentlich als „Here-Dokument“ bekannt. Ich glaube, dass die „Heredoc“-Konstruktion aus PHP, Perl und anderen Skriptsprachen stammt, und für Shell-Skripte würde ich eher bei „Here-Dokument“ bleiben.