Correção nº 1:
Não foi possível rastreá-lo, mas consertamos corrigir isso com a seguinte invasão no meu ~/.bashrc
:
if [ -z "$user_bashrc_already_run" ]; then
user_bashrc_already_run=1
else
return
fi
Correção nº 2:
Gerenciado para rastrear isso corretamente. Como o TTY é um shell de login interativo, ele estava executando /etc/profile
e ~/.profile
(o emulador de terminal no X não carrega nenhum deles, pois não é um shell de login). No meu caso (e eu não tenho idéia do porquê, talvez a instalação do Bashish ou qualquer outra coisa) esses arquivos eram idênticos, e ambos fonte todos os scripts em /etc/profile.d
, que no meu caso incluiu um script que fontes ~/.bashrc
. >
Remover todo o código duplicado de ~/.profile
resolveu o problema.
Lendo a seção "Invocação" de man bash
e perguntas como link são úteis.
Caso alguém venha aqui com um problema semelhante, aqui está uma maneira melhor de executar o tmux, porque ele faz com que o shell seja substituído pelo tmux em vez de executar o tmux como um sub shell:
if command -v tmux>/dev/null; then # check if tmux command exists
if [[ "$(tty)" =~ /dev/tty ]] && [[ ! "$TERM" =~ screen ]] && [ -z "$TMUX" ]; then
# We're on a TTY and *not* in tmux
exec tmux -u
fi
fi
E eu decidi colocar isso no meu ~/.profile
porque eu quero que ele seja executado em shells de login, não em shells de não-login. (Observe que, se você tiver ~/.bash_profile
, o bash executará isso em vez de ~/.profile
.)