2017-09-04 3 views
0

Ich benutze diesen Befehl und bekomme eine Eingabeaufforderung. Ich habe es in einem Auto-FTP-Skript gefunden.Was "<<!" bedeutet in Linux Shell?

$ <<! 
> 

Ich möchte seinen Namen wissen und, wie man es benutzt.

Antwort

2

<< gefolgt von einer beliebigen Zeichenfolge bedeutet Lesen Sie die Eingabe bis zu dieser Zeichenfolge, und geben Sie all dies auf die Standardausgabe.

So finden Sie:

<<EOF 
Hi, 
This is some plain text. 
EOF 

Die meiste Zeit gibt es einen Befehl vor <<. Das bedeutet: Lesen Sie die Eingabe und senden Sie sie an die Standardeingabe des Befehls.

So finden Sie zum Beispiel:

cat <<EOF 1>&2 
This text is written to the stderr. 
EOF 

Aber man könnte schreiben:

<<EOF 1>&2 
This text is written to the stderr. 
EOF 

Auf die gleiche Weise können Sie sortieren Text:

sort <<EOF 
A 
C 
D 
B 
EOF 

zu bekommen A B C D in dieser Reihenfolge.

Schließlich können Sie dies mit dem Rohr auf einem anderen Befehl verwenden:

<<EOF | tr a-z A-Z 
This is some text. Yes. 
EOF 

zu erhalten:

THIS IS SOME TEXT. YES. 
+0

Die '<< EOF | tr a-z A-Z' Beispiel ist nicht in bash 4.4 arbeiten. Es muss "tr a-z A-Z << EOF" sein –

+0

Ja, abhängig von der Shell und ihrer Version werden einige Beispiele möglicherweise nicht unterstützt. Aber alle werden mit jeder Version von zsh unterstützt. –