У меня есть эта многострочная строка (цитаты включены):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Как бы я назначил его переменной, используя heredoc в Bash?
Мне нужно сохранить переводы строк.
Я не хочу избегать символов в строке, это будет раздражать ...
"EOF"переменной с двойным кавычкой , если eval $VARвызывается через , приведет к тому, что весь остальной сценарий будет закомментирован, так как здесь $ VAR будет рассматриваться как одна строка ; чтобы иметь возможность использовать #комментарии bash в многострочном скрипте, используйте двойные кавычки и переменную в переменной eval call: «$ VAR» `.
evalэтими методами, но я не отслеживал его, поскольку он был частью некоторого пакета, в котором evalнекоторые переменные определены в его конфигурационном файле. Сообщение об ошибке было: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file. Я просто переключился на другое решение.
'EOF', с экранированными` in the content: if the second line hasпереносами строк с помощью команды cd`, я получаю ответ: " .sh: line X: cd: команда не найдена "; но если я приведу двойные кавычки"EOF"; тогда переменные bash${A}не сохраняются как строки (они раскрываются); но затем, линия-брейки будут сохранены - и я не имею проблемы запуска команды сcdво второй строке ( и как «EOF» и «EOF» , кажется, играют хорошо и сeval, для выполнения набора команд , хранящихся в строковая переменная ). Ура!