O que eu acredito que está acontecendo é que sua função which_term()
está sendo executada em seu contexto de login pessoal. Nesse contexto, todas as alterações imediatas funcionarão. Quando você usa o comando su
(usuário substituto), você está alternando para um contexto de usuário diferente. Nesse caso, você invocará o .bashrc
do usuário de destino no contexto de destino; no seu caso, é o usuário padrão, root
chamando .bashrc
do root.
Se você quiser substituir isso, você deve fazê-lo manualmente. Por exemplo, se seu nome de usuário for userxbw
, depois que o comando su
fornecer um prompt, a execução de source ~userxbw/.bashrc
fornecerá seu arquivo .bashrc
pessoal. No entanto, esta é uma prática perigosa quando rodando como root, já que você pode ter comandos em seu .bashrc que são perigosos quando executados como super-usuário.