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.