Em seu snippet abaixo, você usa "aspas duplas" ao redor das saídas de contrabarra:
$ STRING="\\n"
$ printf "${STRING}"
\n$
No entanto, o Bash ainda avalia algumas escapes entre barras invertidas entre aspas duplas, então o conteúdo de sua variável depois disso é realmente \n
, já que "\"
é avaliado como \
.
Coloque a sequência em 'aspas simples' para impedir que o shell toque em nenhuma das barras invertidas:
$ STRING='\\n'
$ printf "$STRING"
\
$