Основное отличие команд source и export в Linux заключается в их функциях.
Export используется для экспорта переменных окружения. 1 С её помощью можно установить значение переменной и сделать его доступным для всех процессов, запущенных в текущей сессии. 1 Переменные окружения, определённые с помощью export, подобны глобальным переменным: доступ к ним есть как в родительской оболочке, так и во всех дочерних оболочках, процессах и командах. 2
Source, в свою очередь, выполняет скрипт в текущей сессии. 1 С помощью этой команды можно загрузить функции и переменные в скрипты текущей оболочки. 4 Скрипт, запущенный с помощью source, может получить доступ ко всем переменным в той же оболочке, откуда он был запущен. 4
Таким образом, export больше ориентирован на создание глобальных переменных, а source — на работу со скриптами в конкретной среде.