Comment conserver les nouvelles lignes dans une chaîne entre guillemets dans Bash?

Je crée un script pour automatiser la création d’hôtes virtuels apache. Une partie de mon script va comme ceci:

MYSTRING=" ServerName $NEWVHOST DocumentRoot /var/www/hosts/$NEWVHOST ... " echo $MYSTRING 

Cependant, les sauts de ligne dans le script sont ignorés. Si je répète la chaîne, elle est crachée sur une ligne.

Comment puis-je m’assurer que les sauts de ligne sont imprimés?

Ajoutez des devis pour que cela fonctionne:

 echo "$MYSTRING" 

Vois-le de cette façon:

 MYSTRING="line-1 line-2 line3" echo $MYSTRING 

ceci sera exécuté comme:

 echo line-1 \ line-2 \ line-3 

c.-à-d. echo avec trois parameters, imprimant chaque paramètre avec un espace entre eux.

Si vous ajoutez des guillemets autour de $MYSTRING , la commande résultante sera:

 echo "line-1 line-2 line-3" 

c’est-à-dire avec un paramètre de chaîne unique qui a trois lignes de texte et deux sauts de ligne.