Eu tenho essa sequência de várias linhas (aspas incluídas):
abc'asdf"
$(dont-execute-this)
foo"bar"''
Como atribuiria a uma variável usando um heredoc no Bash?
Eu preciso preservar novas linhas.
Eu não quero escapar dos caracteres da string, isso seria irritante ...
"EOF"
variável double qouted , se chamado via eval $VAR
, fará com que todo o restante do script seja comentado, pois aqui $ VAR será visto como uma única linha ; para poder usar os #
comentários do bash no script de múltiplas linhas, aspas duplas também variável no eval call:
eval "$ VAR" `.
eval
esse método, mas não o localizei, pois fazia parte de algum pacote com eval
algumas variáveis definidas no arquivo de configuração. Mensagem de erro foi: /usr/lib/network/network: eval: line 153: syntax error: unexpected end of file
. Acabei de mudar para outra solução.
'EOF'
, com quebras de linha escapadas com o` in the content: if the second line has
comando cd`, volto: " .sh: linha X: cd: comando não encontrado "; mas se eu citar duas vezes"EOF"
; as variáveis bash${A}
não são preservadas como seqüências de caracteres (elas são expandidas); mas então, as quebras de linha são preservadas - e, não tenho problemas ao executar um comandocd
na segunda linha ( e 'EOF' e "EOF" parecem funcionar bem também comeval
, para executar um conjunto de comandos armazenados em uma variável de string ). Felicidades!