É 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 № 1Como @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.