bash
не выполняет вывод команды backtick, только подставляет ее. (Функция называется подстановкой команд в конце концов.)
Если подстановка не заключена в двойные кавычки, для вывода команды выполняется разделение слов, но кавычки и другие специальные символы игнорируются; export PS1="[STRING] $PS1"
просто делится $IFS
на:
export
PS1="[STRING
$PS1"
Если вы хотите выполнить содержимое файла, поставьте его:
, ./file.txt
или не POSIX:
источник ./file.txt
Если вы хотите, чтобы весь стандартный синтаксический анализ применялся к подстановке - например, к переменной - вы можете использовать eval "$commands"
или eval "$(foo)"
илиeval "`foo`"
. Но будь очень осторожен с этим.