O ambiente dado a um programa versus o ambiente de execução no qual o programa é invocado

2

Manual de Bash diz

When a program is invoked it is given an array of strings called the environment. This is a list of name-value pairs, of the form name=value.

  1. Qual é a relação e a diferença entre o ambiente dado a um programa e o ambiente de execução em qual o programa é invocou ?

    O ambiente é dado a um programa

    • o mesmo conceito que o ambiente de execução no qual o programa é invocado?
    • parte do ambiente de execução no qual o programa é chamado?
  2. O ambiente dado a um programa consiste
    • apenas de todos os variáveis de ambiente do programa, cada variável de ambiente para um par (nome, valor)?
    • ou mais que as variáveis de ambiente do programa?
por Tim 11.02.2016 / 21:37

1 resposta

1

O Ambiente de Execução de Comando inclui "o ambiente". O manual bash refere-se a ele como parâmetros de shell que são definidos pela atribuição de variáveis . Esses "parâmetros" compreendem os pares nome-valor que são geralmente referidos como "o ambiente". Você pode achar a environ (7) manpage útil para mais informações.

Além do ambiente, o Ambiente de Execução de Comando inclui o contexto no qual o programa é iniciado, coisas como o diretório de trabalho atual e o uid que possui o processo.

Espero que isso esclareça um pouco para você. Se você quiser saber mais, você precisa entender melhor o que o bash está fazendo no nível do sistema, particularmente o controle de processo. Você poderia começar com, por exemplo fork (2) e seguindo as referências SEE TAMBÉM, mas o assunto não pode ser realmente aprendido lendo as páginas man. Você precisa de um livro para explicar como todas as peças se encaixam.

    
por 17.02.2016 / 04:10