Se você citar EOF
, as variáveis não serão expandidas, como você descobriu. Isso está documentado na seção Documentos aqui de man bash
:
No parameter and variable expansion, command substitution, arithmetic
expansion, or pathname expansion is performed on word. If any part of
word is quoted, the delimiter is the result of quote removal on word,
and the lines in the here-document are not expanded. If word is
unquoted, all lines of the here-document are subjected to parameter
expansion, command substitution, and arithmetic expansion, the charac‐
ter sequence \<newline> is ignored, and \ must be used to quote the
characters \, $, and '.
A outra coisa explicada é que você ainda pode usar \
, você só precisa escapar: \
. Então, como você quer dois \
, você precisa escapar de cada um deles: \\
. Colocando tudo isso junto:
#!/bin/bash
var="lalallalal"
tee file.tex <<EOF
text \\ text \\
$var
EOF