Simples! Você está chamando um script que será rodado em um subshell. O export atua no shell corrente (no caso seu subshell) e em seus filhos. Uma vez que a execução de teste.sh termina, o subshell morre e com ele todas as variáveis. Por isto o shell que está executando seu script.sh não conhece o valor de $ola.
Use o que seria o include de outras linguagens. Chama-se source. source teste.sh Note que teste.sh nem precisa ter permissões de execução. Atenciosamente, -- Fabiano Caixeta Duarte Especialista em Redes de Computadores Linux User #195299 Ribeirão Preto - SP miguelcm86 escreveu: > Olá pessoal > > É o seguinte, não estou a conseguir guardar uma variavel ao sair de > uma função.. exemplo > > script.sh > > echo "este script chama o teste.sh" > ./teste.sh > echo "variável tem o valor de $olá" > > exit 0 > > > > teste.sh > > export olá=23 > > exit 0 > > > > isso aí em cima é um exemplo o programa na realidade é muito mais > complexo. > > não percebo porquê não funciona, tb já tentei por o export dentro de > teste.sh e alocar antes de chamar a função, mas sempre que retoma a > teste.sh perde o valor.
