2017-08-14 2 views
1

ich bash ziemlich neu bin,Bash - heißt das eine Definition?

Ich lernte über Variablen wie folgt aus:

var=$(cat << EOF 
this is echoed 
and this as well... 
EOF 
) 

echo "$var" 

wenn der obige Code aufgerufen wird ein variable, wie Sie unten den Ansatz nennen? ist dies eine Verwendung eines definition?

def="This should be echoed\nand this as well...\n" 

printf "$def" 

Ich frage nach der richtigen Terminologie des zweiten Ansatzes.

+0

Ich verstehe nicht, was Ihr Problem ist? – Jdamian

+0

In der Auswertung für Var haben Sie, was allgemein als Heredoc bezeichnet wird, ist das die Frage? – dood

+0

@Jdamian, tut mir leid, dass ich es nicht klar gemacht habe, ich habe die Frage aktualisiert. – nath

Antwort

1

Sowohl var als auch def sind Variablen; Das sind die Namen von String-Daten in Ihrer aktuellen Umgebung, auf die Sie unter Verwendung von $ wie in Ihren Beispielen zugreifen.

Um jede Variable zu erstellen, geben Sie eine Zeichenfolge zu ihm. Dies wird als Zuweisung bezeichnet. Syntaktisch ist = der Zuweisungsoperator.

Sobald var und def zugewiesen sind, gibt es keinen Unterschied in der Art, wie sie Daten speichern; die gespeicherten Daten sind jeweils nur eine Zeichenkette.

Es gibt nichts "Besonderes", das eine zusätzliche Terminologie bei der Zuweisung von def erfordert. Allerdings gibt es zwei interessante Aspekte der var Zuordnung ist:

  • Wie in einem Kommentar angedeutet, um Ihre Nutzung von cat ist ein Muster, ein "here document" genannt.
  • Um das "Dokument" (das nur eine Zeichenfolge ist) zu erstellen und zu erfassen, verwenden Sie $(), eine Form von "command substitution".
Verwandte Themen