Ignora as variáveis de outro shell

0

Estou em uma estação de trabalho linux em uma rede, com uma distribuição "antiga". Além disso, o shell de login é aplicado ao CSH. Eu já pedi para os administradores se seria possível mudar para outro (eu gostaria de ter bash), mas foi um não-go ...

Portanto, estou executando o bash a partir da linha de comando, como um shell interativo de não-login (na verdade, estou usando o gnome e o gnome-terminal com um perfil que executa / bin / bash -i como o comando). Muito, se não todos os meus scripts usam o bash, então eu os executo invocando bash com um script. É confuso, mas funciona.

Eu tenho .cshrc com variáveis de ambiente, aliases e opções para csh definidas em arquivos .login e .cshrc no meu $ HOME. Eu também tenho um .bashrc / .bash_profile (que redireciona para .bashrc se este for um shell interativo) /. Bash_aliases com algumas outras variáveis e algumas que são as mesmas. Quando executo o bash shell, herdo das variáveis de ambiente definidas no meu arquivo .login. Eu gostaria de ignorar tudo o que está configurado neste quando eu corro bash.

Eu gostaria de saber se existe uma opção para executar o bash, ignorando todas as outras variáveis de ambiente previamente definidas na minha sessão de login do CSH quando executo meu shell BASH.

Você tem alguma ideia?

Obrigado

    
por Marc-Olivier Titeux 08.08.2012 / 14:47

2 respostas

2

Em vez de desativar manualmente as variáveis que você não deseja herdar, execute o bash usando o comando env :

env -i bash

O sinal -i faz com que bash ignore seu ambiente herdado.

    
por 10.08.2012 / 06:41
0

Você deseja executar o bash como shell não interativo, dentro do CSH, com variáveis bash definidas em .bash_profile, certo?

Você pode dar uma sequência:

./bash --login
source ./bash --login

mas não posso testá-lo.

    
por 08.08.2012 / 15:38