Как изменить переменную среды при смене пользователя?

246
dukasvili

У меня есть портативный терминал с оболочкой bash на USB-накопителе, и я хочу загружать разные переменные среды каждый раз, когда я меняю компьютер, на разных машинах пользователи разные. Как настроить файл .bashrc для этого?

0

1 ответ на вопрос

1
iwaseatenbyagrue

Я не уверен, что полностью понимаю, что вы хотите сделать.

Я подозреваю, что в основном вы захотите сохранить несколько файлов окружения, которые вы можете получить, когда и где это необходимо.

Предполагая, что вы хотите, чтобы ваша среда была установлена ​​на удаленной машине, в которую вы входите по ssh, ваш .bashrc может содержать что-то вроде

source ~/path/to/file.env 

или же

. ~/path/to/file.env 

Помните, что .bashrc не может быть файлом, который вам нужно отредактировать. Из моей системы bashrc:

# There are 3 different types of shells in bash: the login shell, normal shell # and interactive shell. Login shells read ~/.profile and interactive shells # read ~/.bashrc; in our setup, /etc/profile sources ~/.bashrc - thus all # settings made here will also take effect in a login shell. 

Если вы переключаете пользователей локально, этот подход также будет работать.

Если вы хотели изменить свое собственное окружение (не знаю почему, но не здесь, чтобы судить), то, вероятно, проще всего просто вручную набрать любой env-файл, который вам нужен, и когда вам это нужно.

Это звучит так, как будто вы работаете в Windows, но в этом случае вам может понадобиться убедиться, что ваша локальная оболочка работает аналогично bash и позволяет создавать источники.

Также имейте в виду, что вы можете использовать envкоманду для запуска, как в:

env -i bash -c 'source .foo.env && do_something.sh' 
Я думаю о каком-то скрипте, если я на pc1 использую env1, если pc2 использую en2. Да, я на Windows, работаю MobaXterm с Bash dukasvili 7 лет назад 0
Хорошо - самый простой способ - просто загрузить файл env, когда вам это нужно. Я думаю, если вы действительно захотите, вы могли бы сделать это для какого-нибудь сценария, например, посмотрев на ваше имя хоста и / или имя пользователя и поставив «правильный» env-файл. Должно работать что-то вроде `source ~ / envs / $ HOSTNAME_ $ USER.env` в вашем .bashrc, iwaseatenbyagrue 7 лет назад 0
Да, это именно то, что я хочу. dukasvili 7 лет назад 0

Похожие вопросы