Вы не можете сделать это с помощью make-файла ИЛИ с помощью отдельного сценария оболочки. Когда вы запускаете make или запускаете сценарий оболочки, он создает новый процесс. Любые изменения, внесенные в среду этого процесса, будут отброшены при выходе из этого процесса. Невозможно (в UNIX-подобной системе) процессу изменить среду своего родительского процесса.
Единственное, что вы можете сделать, это либо написать функцию оболочки, которая вызывается внутри процесса оболочки, который вы запускаете (который отображает ваше приглашение и т. Д.), Либо иметь скрипт, который вы используете, а не выполняете: он будет заставить скрипт работать в том же процессе оболочки, а не создавать новый.
Таким образом, вы могли бы написать функцию оболочки в вашем ~/.bashrc
или подобном:
setvars () { export $(grep -v ^# env.txt | xargs); }
Или вы можете написать отдельный сценарий оболочки, но вы не можете его запустить, вам нужно его получить (команда .
получает сценарий, а не запускает его):
. set-my-vars.sh