J'ai cette chaîne multi-lignes (guillemets inclus):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Comment pourrais-je l'affecter à une variable en utilisant un hérédoc dans Bash?
Je dois préserver les nouvelles lignes.
Je ne veux pas échapper aux caractères de la chaîne, ce serait ennuyeux ...
"EOF"variable double-qouted , s'ils sont appelés via eval $VAR, feront commenter tout le reste du script, car ici $ VAR sera vu comme une seule ligne ; pour pouvoir utiliser les #commentaires bash dans un script multiligne, double-quote aussi variable dans l' eval call: eval "$ VAR" `.
evalcette méthode, mais je ne l'ai pas retrouvée car elle faisait partie d'un paquet evalcontenant des variables définies dans son fichier de configuration. Message d'erreur était: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file. Je viens de passer à une autre solution.
'EOF', avec des sauts de ligne échappés avec la` in the content: if the second line hascommande cd`, je reviens: " .sh: ligne X: cd: commande introuvable "; mais si je cite deux fois"EOF"; alors les variables bash${A}ne sont pas conservées sous forme de chaînes (elles sont développées); mais ensuite, les sauts de ligne sont préservés - et, je n'ai aucun problème à exécuter une commande aveccden deuxième ligne ( et les deux 'EOF' et "EOF" semblent bien fonctionner également aveceval, pour exécuter un ensemble de commandes stockées dans une variable chaîne ). À votre santé!