.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
не является оболочкой входа
Как я могу определить, является ли оболочка "оболочкой для входа"?
- Попробуйте набрать "
logout
". Если оболочка завершается, это была оболочка входа в систему. Если он говорит, что это не оболочка входа в систему, то это не так.- Тип "
ps -fp$$
". (Изменить, если вашps
принимает разные аргументы, чтобы сделать все, что вам нужно, чтобы получить полный / длинный список информации о процессе для текущей оболочки --– "–p
"Означает" посмотреть на этот процесс"и"$$
"Это PID оболочки.) Если имя процесса начинается с тире (дефис), как в"-bash
" или же "-csh
”, Это оболочка входа в систему; в противном случае это не так. (Наверное.)
... Итак, оболочка работает под tmux
не буду смотреть на .bash_profile
; это будет смотреть только на .bashrc
, Так что переместите команды, которые вы хотите выполнить из .bash_profile
в .bashrc
Или поместите их в обоих местах, или сделайте один источник другим.