Isso colocará seu texto em sua variável sem precisar escapar das citações. Ele também irá manipular aspas não balanceadas (apóstrofos, ou seja, '
). Colocar aspas ao redor da sentinela (EOF) impede que o texto passe por expansão de parâmetro. O -d''
faz com que ele leia várias linhas (ignore as novas linhas). read
é um Bash integrado, por isso não é necessário chamar um comando externo, como cat
.
IFS='' read -r -d '' String <<"EOF"
<?xml version="1.0" encoding='UTF-8'?>
<painting>
<img src="madonna.jpg" alt='Foligno Madonna, by Raphael'/>
<caption>This is Raphael's "Foligno" Madonna, painted in
<date>1511</date>-<date>1512</date>.</caption>
</painting>
EOF