У меня есть эта многострочная строка (цитаты включены):
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
, для выполнения набора команд , хранящихся в строковая переменная ). Ура!