Проблема с большинством ответов здесь заключается в том, что env -i
очищает HOME
, поэтому даже если вы запустите bash -l
внутри, он не будет читать ваш .bash_profile
и т. д. Если то, что вы ищете, оболочка, которая действует так, как будто вы только что выполнили новый вход в систему, вместо этого вам понадобится это:
env -i HOME="$HOME" bash -l -c 'your_command'
Пример:
$ export ABC=123
$ env -i HOME="$HOME" bash -l -c 'env' | grep ABC
$ env HOME="$HOME" bash -l -c 'env' | grep ABC
ABC=123