Обратите внимание, что ~ / .bash_profile запускается только для оболочек входа в систему.Со страницы руководства:
When bash is invoked as an interactive login shell, or as a non-interactive shell
with the --login option, it first reads and executes commands from the file
/etc/profile, if that file exists. After reading that file, it looks for
~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and exe-
cutes commands from the first one that exists and is readable. The --noprofile
option may be used when the shell is started to inhibit this behavior.
Так что, если ваш терминал не запускает оболочку с -l
, --login
или с $0
, имеющим дефис, он победит 'Это не оболочка для входа в систему, поэтому она не будет читать ~ / .bash_profile .Вам может понадобиться перенастроить, как ваш терминал запускает оболочку, если вы хотите, чтобы оболочка считывала этот скрипт конфигурации.
С другой стороны, ~ / .bashrc всегда читается интерактивной оболочкой.Так что если вы поместите экспорт в этот скрипт, он должен делать то, что вы ожидаете.Это, конечно, для меня.Вы ответили Амиле, что это не сработало для вас.Поэтому я бы предложил простой эксперимент.Откройте два оконных окна.В одном редактируйте ~ / .bashrc и добавьте эти две строки:
echo running .bashrc
export WTF=abc
В другом окне просто запустите bash
.Оно должно повторить это сообщение и echo $WTF
должно вывести abc
.Теперь откройте новое окно терминала.Если вы не видите это сообщение, а env var отсутствует, значит что-то запрещает чтение этого скрипта конфигурации.Возможно, оболочка запускается с флагом --norc
.