Heredoc не выполняет повторную интерпретацию, или вы можно сказать, не запускает внутри никаких команд. Он просто интерполирует строки.
Итак, ответ на ваш вопрос состоит в том, что source
-ing не будет происходить внутри heredoc.
Что касается последнего, вы можете использовать \
то есть обратную косую черту, чтобы ОТКЛЮЧИТЬ значение символов, которые вы не хотите расширять с помощью heredoc.