/ / Exportando uma variável global de filho para pai em scripts de shell - linux, bash, shell, unix, centos

Exportando uma variável global de filho para pai em scripts shell - linux, bash, shell, unix, centos

É possível exportar uma variável de um paishell script para seus filhos? Tentando executar os dois scripts a seguir, ele sempre retorna para mim 0, mas quero que retorne 3. Também tentei exportar, definir e adicionar o erro variável ao .bash_profile sem êxito ...

test.sh

$ cat test.sh
#!/bin/bash
error=0
./envtest.sh
echo $error

envtest.sh

$ cat envtest.sh
#!/bin/bash
source ./test.sh
test=3
error=$test
echo $error

Respostas:

0 para resposta № 1

Como @chepner comentou, não.

Quando você invoca ./envtest.sh de dentro test.sh, um novo processo é criado para executar /bin/bash ./envtest.sh, e o ambiente desse processo é inicializado com um cópia de de cada variável de ambiente do processo pai. Não importa o que você faça por dentro envtest.sh, ele pode impactar apenas as variáveis ​​em seu próprio ambiente; não pode tocar nas variáveis ​​no ambiente dos pais.