bash não executa a saída de um comando backtick, apenas o substitui. (O recurso é chamado substituição de comando depois de tudo.)
Se a substituição não tiver aspas duplas, a divisão de palavras será feita na saída do comando, mas aspas e outros caracteres especiais são ignorados; export PS1="[STRING] $PS1" é simplesmente dividido por $IFS para:
-
export -
PS1="[STRING -
$PS1"
Se você deseja executar o conteúdo de um arquivo, use-o:
. ./file.txt
ou não POSIX:
source ./file.txt
Se você quiser que todas as análises padrão sejam aplicadas a uma substituição - por exemplo, uma variável - você pode usar eval "$commands" ou eval "$(foo)" ou eval "'foo'" . Mas tenha muito cuidado com isso.