Die Umleitungsoperatoren "<<" und "<< -" ermöglichen beide die Umleitung von Zeilen, die in einer Shell-Eingabedatei, die als "Here-Dokument" bezeichnet wird, enthalten sind, zur Eingabe eines Befehls.
Das Dokument hier wird als ein einzelnes Wort behandelt, das nach dem nächsten beginnt und fortgesetzt wird, bis eine Zeile nur das Trennzeichen und a enthält, ohne dazwischen liegende Zeichen. Dann beginnt das nächste Here-Dokument, falls es eines gibt. Das Format ist wie folgt:
[n]<<word
here-document
delimiter
Dabei steht das optionale n für die Dateideskriptornummer. Wenn die Nummer weggelassen wird, bezieht sich das Dokument hier auf die Standardeingabe (Dateideskriptor 0).
Wenn ein Zeichen in einem Wort in Anführungszeichen steht, wird das Trennzeichen durch Entfernen des Anführungszeichens für das Wort gebildet, und die Zeilen des Dokuments dürfen nicht erweitert werden. Andernfalls ist das Trennzeichen das Wort selbst.
Wenn keine Zeichen in Word angegeben sind, werden alle Zeilen des hier beschriebenen Dokuments zur Parametererweiterung, Befehlssubstitution und arithmetischen Erweiterung erweitert. In diesem Fall verhält sich das in der Eingabe wie die inneren doppelten Anführungszeichen (siehe doppelte Anführungszeichen). Das doppelte Anführungszeichen ('"') wird jedoch in einem Dokument hier nicht speziell behandelt, es sei denn, das doppelte Anführungszeichen erscheint in" $ () "," `` "oder" $ {} ".
Wenn das Umleitungssymbol "<< -" ist, werden alle führenden <tab>
Zeichen von den Eingabezeilen und der Zeile mit dem nachfolgenden Trennzeichen entfernt. Wenn in einer Zeile mehr als ein "<<" - oder "<< -" - Operator angegeben ist, wird das dem ersten Operator zugeordnete Dokument zuerst von der Anwendung bereitgestellt und zuerst von der Shell gelesen.
Wenn ein Here-Dokument von einem Endgerät gelesen wird und die Shell interaktiv ist, muss es den Inhalt der Variablen PS2, die wie unter Shell-Variablen beschrieben verarbeitet wurde, auf Standardfehler schreiben, bevor jede Eingabezeile gelesen wird, bis das Trennzeichen erkannt wurde.
Einige Beispiele noch nicht angegeben.
cat
. Versuchen Siepsql ... << EOF ...
Siehe auch "hier Zeichenfolgen". mywiki.wooledge.org/BashGuide/InputAndOutput?#Here_Strings