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" `.
eval
cette méthode, mais je ne l'ai pas retrouvée car elle faisait partie d'un paquet eval
contenant 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 has
commande 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 aveccd
en 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é!