Carrega um .bashrc diferente ao iniciar o konsole ou o termo a partir da linha de comando

1

O início do console ou termo a partir da linha de comando carregará o .bashrc padrão. Mas eu quero carregar diferentes configurações dadas opções passadas para ele. A partir de agora, o melhor que consigo pensar é que eu posso definir uma função em .bashrc que aceita opções e entretanto manter três arquivos de configuração .bashrc0, .bashrc1 e .bashrc2 para substituir .bashrc depende da opção passada.

#new term function
nterm (){
    if [ "$#" == "1" ]; then
       if [ "$@" == "option_a" ]; then
          yes | cp $HOME/.bashrc1 $HOME/.bashrc
          term
          yes | cp $HOME/.bashrc0 $HOME/.bashrc
       else if [ "$@" == "option_b" ]; then
          yes | cp $HOME/.bashrc2 $HOME/.bashrc
          term
          yes | cp $HOME/.bashrc0 $HOME/.bashrc
       fi
    else 
       term
    fi
}

Então eu posso ligar

$nterm option_a

Ou

$nterm option_b

Para iniciar dois novos terminais com diferentes configurações carregadas. O mesmo com o konsole.

Mas existe uma forma herdada para fazer isso em termos / console / bash ou uma alternativa muito mais côncava e explícita ?

    
por Improbable Impreach 22.12.2016 / 09:10

1 resposta

1

Eu sugeriria o uso do parâmetro --rcfile do bash; ele força os shells interativos do bash a usarem o arquivo RC em vez de de ~/.bashrc . Mude sua função para:

nterm (){
    if [ "$#" == "1" ]; then
       if [ "$@" == "option_a" ]; then
          term -e bash --rcfile "$HOME/.bashrc1"
       else if [ "$@" == "option_b" ]; then
          term -e bash --rcfile "$HOME/.bashrc2"
       fi
    else 
       term
    fi
}

Eu não estou familiarizado com o comando term ; Eu suponho a partir de suas tags que é gnome-terminal ou um wrapper para isso, nesse caso eu estou tendo invocar bash com os arquivos correspondentes RC.

    
por 26.02.2017 / 01:14