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: