Execute .bashrc somente se o terminal for iniciado a partir da GUI

1

Algumas das perguntas semelhantes parecem não corresponder à minha pergunta. O que eu estou tentando fazer é ter .bashrc (ou similar) para apenas executar certos comandos personalizados quando eu iniciá-lo de dentro da GUI (Xfce), mas não na tela de login inicial.

Alguns detalhes:

  • Ubuntu 16.04 Virtual Machine (VirtualBox 5.2.10) no host do Windows
  • Quando eu inicio, uso o usuário vagrant na tela de login de inicialização
  • Normalmente, inicio o Xfce manualmente com sudo startxfce4
  • Em seguida, depois que a GUI foi carregada, inicio um terminal ( Terminator ) e ele é executado para o usuário vagrant

Então, o que acontece atualmente:

  1. eu inicio a VM
  2. Ele pede para o usuário na tela de inicialização
  3. Em seguida, ele usará o .bashrc desse usuário e já faz os comandos que tenho lá. Eu gostaria que eles sejam executados somente quando eu usar o terminal da GUI ( Esta é a minha pergunta - como fazer isso? )
  4. Inicie a GUI
  5. Então, quando eu lanço o terminal na GUI, ele executará os mesmos comandos novamente.

O que eu gostaria de acontecer:

  1. Iniciar a VM
  2. Faça login como usuário - e não execute os comandos especificados ainda
  3. Inicie a GUI
  4. Inicie o terminal a partir da GUI - agora ele deve executar os comandos automaticamente

Então, basicamente, estou procurando por algum tipo de sinalizador de sistema que diga que ele não está sendo executado na GUI. Isso existe? Eu imagino que você poderia ver de algum lugar, como xfce status ou similar?

O principal é que eu gostaria que fosse executado automaticamente em vez de executar um script do PATH, porque isso é fácil de esquecer e você pode gastar algum tempo depurando por que algo não funciona, apenas para perceber que você esqueceu de execute os comandos de pré-requisito.

Obrigado!

    
por Juha Untinen 02.05.2018 / 09:48

1 resposta

0

A variável do shell TERM

Eu acho que você pode verificar o valor da variável de shell TERM com instruções 'if' ou 'case' para controlar o que fazer na tela de texto e no ambiente de área de trabalho gráfica.

Ele já é usado no arquivo de configuração bash padrão ~/.bashrc arquivos do Ubuntu Desktop.

  • Na área de trabalho gráfica do Ubuntu 18.04 LTS:

    $ echo "$TERM"
    xterm-256color
    

    Isso pode variar entre as versões do Ubuntu. Verifique o seu sistema instalado.

  • Na tela de texto do Ubuntu 18.04 LTS:

    $ echo "$TERM"
    linux
    

Exemplo de demonstração

Adicione uma instrução 'if' ao arquivo de configuração do bash ~/.bashrc

É uma boa ideia fazer uma cópia de backup antes de fazer isso.

cp -p ~/.bashrc ~/.bashrc.backup

e, em seguida, adicione algo como as seguintes linhas (modificadas para sua finalidade específica) no final do arquivo ~/.bashrc

if [ "$TERM" != "linux" ]
then
 echo "Do your commands for a graphical desktop"
 ...
 ...
fi
    
por sudodus 02.05.2018 / 10:33