Uma cópia do ambiente é propagada para sub-shells, então isso funciona:
$ export MY_VAR=200
$ bash
$ echo $MY_VAR
200
mas como é uma cópia, você não pode obter esse valor para o shell pai - não alterando o ambiente, pelo menos.
Parece que você realmente quer dar um passo adiante, que é fazer algo que aja como uma variável global, compartilhada por shells "irmãos" iniciados separadamente do pai - como sua nova aba no Terminal do Gnome.
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ê pode sempre hackear alguma coisa. Uma abordagem seria escrever o valor da variável em um arquivo, como ~/.myvar
, e incluir isso em ~/.bashrc
. Em seguida, cada novo shell será iniciado com o valor lido desse arquivo.
Você poderia ir além - faça ~/.myvar
estar no formato MYVAR=200
e, em seguida, defina PROMPT_COMMAND=source ~/.myvar
, o que faria com que o valor fosse relido toda vez que você obtivesse um novo prompt. Ainda não é bastante uma variável global compartilhada, mas está começando a agir como tal. Ele não será ativado até que um aviso retorne, o que, dependendo do que você está tentando fazer, pode ser uma séria limitação.
E então, é claro, a próxima coisa é automaticamente escrever alterações em ~/.myvar
. Isso fica um pouco mais complicado, e eu vou parar neste ponto, porque, na verdade, as variáveis de ambiente não foram feitas para ser um mecanismo de comunicação entre shell, e é melhor apenas encontrar outra maneira de fazê-lo.