Algo no seu .bashrc
está assumindo que o shell está sendo executado em um terminal. Isso é perfeitamente correto: .bashrc
deve rodar apenas em shells interativos, e shells interativos devem rodar apenas em terminais.
O problema é que você está sistematicamente incluindo .bashrc
de .profile
. Isso está errado: você deve incluir apenas .bashrc
em shells interativos.
Altere seu .profile
para
# 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
Mova mesg n
para .bashrc
: é um comando relacionado ao terminal, não um comando relacionado à sessão.
Se você tiver definições de variáveis de ambiente em .bashrc
, mova-as para .profile
. O arquivo .profile
é para coisas que são executadas quando sua sessão é iniciada, geralmente principalmente definições de variáveis de ambiente, usadas por qualquer aplicativo que você executará durante a sessão. O arquivo .bashrc
é o arquivo de configuração do bash quando executado de forma interativa, ele geralmente contém a configuração do terminal, definições de alias, opções de shell e configurações de conclusão, além de outras coisas relacionadas ao uso interativo do shell.
Para informações básicas, consulte: