Что-то в Вашем .bashrc
предполагает, что оболочка работает на терминале. Это прекрасно подходит: .bashrc
как предполагается, работает только в интерактивных оболочках, и интерактивные оболочки, как предполагается, работают только на терминалах.
Проблема состоит в том, что Вы систематически включаете .bashrc
от .profile
. Это неправильно: необходимо только включать .bashrc
в интерактивных оболочках.
Измените Ваш .profile
кому:
# Bash doesn't load its interactive initialization file if it's invoked as
# a login shell, so do it manually.
case $- in
*i*) if [ -n "$BASH" ]; then . ~/.bashrc;; fi
esac
Переместиться mesg n
в .bashrc
: это - связанная с терминалом команда, не связанная с сессией команда.
Если у Вас есть определения переменной среды в Вашем .bashrc
, переместите их в .profile
. .profile
файл для вещей, которые выполняются, когда Ваша сессия запускается, обычно главным образом определения переменной среды, используемые любым приложением, которое Вы запустите во время сессии. .bashrc
файл является конфигурационным файлом для удара при выполнении в интерактивном режиме, он обычно содержит терминальную установку, определения псевдонима, опции оболочки и настройки завершения и другие вещи, связанные с интерактивным использованием оболочки.
Для фона см.: