Mam ten ciąg wieloliniowy (w tym cytaty):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Jak przypisałbym ją do zmiennej za pomocą heredoc w Bash?
Muszę zachować nowe linie.
Nie chcę uciec od znaków w ciągu, co byłoby denerwujące ...
"EOF"zmiennej podwójnie qouted , jeśli zostanie wywołane przez eval $VAR, spowoduje skomentowanie całej reszty skryptu, ponieważ tutaj $ VAR będzie widoczny jako pojedynczy wiersz ; aby móc używać #komentarzy bash w skrypcie wielowierszowym, podwójny cudzysłów również zmienny w eval call: ewaluacji „$ VAR”.
evaltymi metodami, ale nie wyśledziłem go, ponieważ był on częścią jakiegoś pakietu, który zawiera evalpewne zmienne zdefiniowane w jego pliku konfiguracyjnym. Komunikat o błędzie: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file. Właśnie przeszedłem na inne rozwiązanie.
'EOF', ze` in the content: if the second line hasznakami ucieczki z komendami cd`, zwracam: " .sh: linia X: cd: polecenie nie znaleziono "; ale jeśli podwójnie zacytuję"EOF"; wtedy zmienne bash${A}nie są zachowywane jako ciągi znaków (są one rozwijane); ale potem zachowywane są podziały wierszy - i nie mam problemu z uruchomieniem poleceniacdw drugim wierszu ( i zarówno „EOF”, jak i „EOF” wydają się dobrze grać zeval, do uruchamiania zestawu poleceń przechowywanych w zmienna łańcuchowa ). Twoje zdrowie!