O .bashrc cria um shell pai no qual o shell de trabalho atual é gerado

0

Quando definir um diretório como persistente, export deve ser empregado e adicioná-lo a ~ / .bashrc

PATH="$PATH":/usr/local/mysql/bin
export PATH

Isso significa que meu shell de trabalho atual é um subshell criado a partir de um shell pai no script ~ / .bashrc

$ var=3; export var; bash
$ echo $var
3

O shell pai exporta a variável para subshell.

O ~/.bashrc funciona assim?

    
por JawSaw 27.10.2018 / 09:52

2 respostas

2

Não, ~/.bashrc não inicia um novo shell.

O arquivo de inicialização ~/.bashrc é originado , isto é, lido e executado no mesmo ambiente que o shell que o invocou (não executado como um script).

O shell está basicamente fazendo source ~/.bashrc ou . ~/.bashrc para executar o conteúdo do arquivo sem gerar uma nova instância do shell.

Quando você executa export variable=value na linha de comando (ou variable=value; export variable ), define variable para value e marca a variável como "exportada", isto é, ela é transformada em uma variável de ambiente que será herdado por processos subsequentes iniciados a partir do mesmo shell. Nenhum novo shell é iniciado por export .

    
por 27.10.2018 / 10:03
1

Não há sentido em gerar um novo shell e .bashrc não é um script, e sim um arquivo de texto. Você pode ver o que está acontecendo quando monitora o PID do seu shell e introduz alterações no seu .bashrc . Para que eles entrem em vigor, basta pesquisar o arquivo:

. ~/.bashrc

Nenhum novo processo é gerado. É como se você digitasse à mão todas as linhas incluídas nesse arquivo. export por si só não requer um novo shell. Apenas altera o ambiente, que pode ser herdado no futuro.

    
por 27.10.2018 / 13:04

Tags