Executando o comando no novo shell bash com --rcfile e -c

4

Estou executando o seguinte comando e esperaria que ele retornasse BAR , pois o novo shell criado será executado .mybashrc primeiro, onde define $FOO antes que echo $FOO seja executado.

bash --rcfile .mybashrc -c 'echo $FOO'

.mybashrc:

export FOO="BAR"

No entanto, o resultado está vazio. O que deu errado?

    
por Will 08.11.2013 / 15:22

1 resposta

6

Por padrão, as execuções bash não interativas não carregam arquivos de inicialização, como .bashrc ou o destino da sua opção --rcfile . Conforme descrito na página man :

An interactive shell is one started without non-option arguments and without
the -c option whose standard input and error are both connected to terminals
... or one started with the -i option.

Assim, você pode obter o comportamento desejado, forçando bash a agir como um shell interativo com -i :

bash --rcfile .mybashrc -ci 'echo $FOO'
    
por 08.11.2013 / 19:59

Tags