2017-08-14 5 views
1

Je suis assez nouveau pour bash,Bash - est-ce appelé une définition?

je l'ai appris en utilisant des variables comme ceci:

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

echo "$var" 

si le code ci-dessus est appelé en utilisant un variable comment appelez-vous l'approche ci-dessous? est-ce appelé un definition? Je m'interroge sur la bonne terminologie de la seconde approche.

+0

Je ne comprends pas quel est votre problème? – Jdamian

+0

Dans l'évaluation pour var vous avez ce qui est communément appelé un heredoc, est-ce la question? – dood

+0

@Jdamian, désolé de ne pas le préciser, j'ai mis à jour la question. – nath

Répondre

1

Les deux var et def sont des variables; c'est-à-dire, ils sont les noms des données de chaîne dans votre environnement actuel, accessibles en utilisant $ comme dans vos exemples.

Pour créer chaque variable, lui affecter une chaîne. C'est ce qu'on appelle une affectation . Syntaxiquement, = est l'opérateur d'affectation .

Lorsque var et def sont affectés, il n'y a aucune différence dans la façon dont ils stockent les données; les données stockées dans chaque cas sont simplement une chaîne.

Il n'y a rien de "spécial" nécessitant une terminologie supplémentaire dans l'affectation de def. Cependant, il y a deux aspects intéressants de la cession var:

  • Comme mentionné dans un commentaire, votre utilisation de cat est un modèle appelé "here document".
  • Pour créer et capturer le "document" (qui est juste une chaîne), vous utilisez $(), qui est une forme de "command substitution".