Uma cópia do ambiente se propaga para subconchas, portanto, isso funciona:
$ export MY_VAR=200
$ bash
$ echo $MY_VAR
200
mas como é uma cópia, você não pode obter esse valor até o shell pai - não alterando o ambiente, pelo menos.
Parece que você realmente quer ir um passo adiante, que é criar algo que atue como uma variável global, compartilhada por shells "irmãos" iniciados separadamente dos pais - como sua nova guia no Gnome Terminal.
Principalmente, a resposta é "você não pode, porque as variáveis de ambiente não funcionam dessa maneira". No entanto, há outra resposta, que é, bem, você sempre pode hackear alguma coisa. Uma abordagem seria escrever o valor da variável em um arquivo, como ~/.myvar
, e depois incluí-lo ~/.bashrc
. Em seguida, cada novo shell começará com o valor lido desse arquivo.
Você poderia dar um passo adiante - criar ~/.myvar
no formato MYVAR=200
e depois definir PROMPT_COMMAND=source ~/.myvar
, o que faria com que o valor fosse relido toda vez que você receber um novo prompt. Ainda não é uma variável global compartilhada, mas está começando a agir assim. Porém, ele não será ativado até que um prompt volte, o que, dependendo do que você está tentando fazer, pode ser uma limitação séria.
E então, é claro, a próxima coisa a fazer é gravar automaticamente as alterações ~/.myvar
. Isso fica um pouco mais complicado, e eu vou parar neste momento, porque, na verdade, as variáveis de ambiente não foram feitas para serem um mecanismo de comunicação entre shell, e é melhor encontrar outra maneira de fazê-lo.