Compartilhando Variáveis Através de Scripts Sub-shell

2

Eu tenho um shell principal que executa um perfil. O perfil contém algumas variáveis, como Contagem. Quando eu chamo o shell principal, ele carrega o perfil e, em seguida, chama outro script de shell. Eu quero que o script de shell interno seja capaz de acessar a contagem de variáveis que o script de shell principal já carregou. Como eu posso fazer isso ? Eu tentei exportar, mas ajudei apenas na importação de uma variável de nível.

    
por alex 17.09.2012 / 04:13

2 respostas

1

export permite que as variáveis definidas em um processo sejam lidas no subprocesso, mas se a variável for modificada no subprocesso, a variável não será alterada no processo do chamador, porque cada processo possui suas próprias variáveis de ambiente. Talvez uma solução possa ser o sub shell para gravar na saída e no shell do chamador para ler a saída.

count=$(subprocess)
    
por 17.09.2012 / 10:30
1

Não chame os scripts internos como processos separados, chame-os como scripts incluídos.

. /path/to/inner_script

Scripts lidos através do . (ponto) embutido (também disponível sob o nome source no bash) são executados no mesmo ambiente de shell que o chamador. Em particular, eles compartilham variáveis.

    
por 18.09.2012 / 03:45