.bashrc usado no gnome não apenas no terminal

1

Recentemente, comecei a usar a distribuição Anaconda Python para desenvolvimento de software e quero que seja a distribuição padrão do Python quando executo algo no terminal. Para fazer isso, adicionei o diretório dos binários do Anaconda ao meu arquivo .bashrc:

export PATH="/opt/anaconda:$PATH"

Isso funciona bem.

No entanto, agora algumas ferramentas não funcionam no meu ambiente de desktop Gnome. Não consigo executar o gnome-tweak-tool e não consigo abrir um terminal usando um atalho de teclado que atribuí.

Eu rastreei esse problema até o fato de que essas operações agora usam minha instalação do Anaconda e não o original, que tem algumas bibliotecas extras instaladas (por exemplo, 'gi').

Então, como corrijo esse problema? Existe alguma maneira de ter as coisas executadas somente no início de uma sessão de terminal e não para todo o meu ambiente de gnome?

    
por Mark 27.06.2014 / 11:00

2 respostas

1

Uma maneira de fazer isso seria alias ao comando python para usar o anaconda em vez de mudar seu caminho. Em vez de alterar seu caminho, tente adicionar:

alias python="/opt/anaconda"

para o seu arquivo .bashrc. Isso deve fazer com que o anaconda só seja executado quando você digitar "python" no terminal, não quando algo mais tentar usá-lo. (alguém me corrija se eu estiver errado, mas isso deve funcionar)

    
por 01.07.2014 / 20:04
0

A palavra que você está procurando aqui é interativa shell, que lê a entrada de um usuário e exibe a saída em um terminal. Isso está em contraste com shells não-interativos que executam comandos de um script sem nenhuma entrada do usuário (programas, scripts ou ambientes de desktop executam o shell de forma não interativa).

Em seu .bashrc , você pode testar facilmente se o shell é interativo (no bash, tem $- definido como i ; também é possível testar se $PS1 está definido) e, em seguida, executar seu comando somente em interativos conchas:

if [[ $- == *i* ]] # Test if the shell is interactive
then
    echo "Welcome in the interactive shell"
    export PATH="/opt/anaconda:$PATH"
fi

Programas e ambientes como o Gnome irão ignorar as linhas acima, porque eles executam o bash de maneira não interativa.

    
por 14.12.2017 / 16:21