Compartilhando variáveis entre shell scripts [duplicados]

0

Eu tenho um script de shell (vamos chamá-lo de parent.sh) que chama outro script de shell (child.sh), passando um argumento para ele.

O script filho faz algum trabalho e define um valor em uma variável chamada create_sql . Desejo acessar essa variável create_sql do script pai que a invocou.

Estou chamando o script filho de dentro do script pai assim:

./child.sh "$dictionary"

e logo depois eu tenho a linha:

echo "The resulting create script is: "$create_sql

No entanto, não há saída de valor, no entanto, no script filho eu estou fazendo a mesma coisa e a variável está definida definitivamente.

Como posso fazer isso funcionar para que eu possa ler as variáveis criadas pelo script filho?

    
por jcm 13.11.2014 / 07:47

1 resposta

1

Se você child.sh imprime na saída padrão $create_sql valor, você pode obtê-lo no script pai:

  create_sql='./child.sh "$dictionary"'

Após essa linha, você deve testar o valor de saída child.sh com $? e, se retornar 0 , você pode usar a variável $create_sql .

Esta abordagem é útil quando o script é como uma função, caso contrário, é melhor seguir o seguinte comando sugerido responder .

    
por Lety 13.11.2014 / 14:16