.profile и.bash_profile игнорируются при запуске tmux из.bashrc?

У меня возникла проблема с получением моего.profile при получении SSH в экземпляре сервера Ubuntu 12.04. Мой.bashrc к концу делает следующее:

if [[ "$TERM" != "screen-256color" ]]
then
   tmux attach-session -t "$USER" || tmux new-session -s "$USER"
   exit
fi

Если я закомментирую этот блок кода и снова войду с ssh, файл ~/.profile будет получен, как и ожидалось. В разделе ~ нет.bash_profile или.bash_login, которые бы препятствовали чтению ~/.profile. Переименование.profile в.bash_profile в качестве эксперимента также не привело к получению файла.

У кого-нибудь есть догадки, почему это может происходить? Я мог бы просто вставить все в.bashrc, но я бы хотел узнать, почему.profile не поставляется.

1 ответ

Решение

Как обсуждалось в разделе Почему ~/.bash_profile не получает источник при открытии терминала? на "Спросите Ubuntu", оболочка работает под tmux не является оболочкой входа

Как я могу определить, является ли оболочка "оболочкой для входа"?

  1. Попробуйте набрать "logout". Если оболочка завершается, это была оболочка входа в систему. Если он говорит, что это не оболочка входа в систему, то это не так.
  2. Тип "ps -fp$$".  (Изменить, если ваш ps принимает разные аргументы, чтобы сделать все, что вам нужно, чтобы получить полный / длинный список информации о процессе для текущей оболочки --– "–p"Означает" посмотреть на этот процесс"и"$$"Это PID оболочки.) Если имя процесса начинается с тире (дефис), как в"-bash" или же "-csh”, Это оболочка входа в систему; в противном случае это не так.  (Наверное.)

... Итак, оболочка работает под tmux не буду смотреть на .bash_profile; это будет смотреть только на .bashrc, Так что переместите команды, которые вы хотите выполнить из .bash_profile в .bashrcИли поместите их в обоих местах, или сделайте один источник другим.

Другие вопросы по тегам