Executando o shell script sem variáveis ambientais

17

Como eu sei, o shell script recém-executado herda suas variáveis de ambiente. Existe uma maneira de bloquear isso? (executando shell sem herança variável)

    
por Eonil 01.09.2010 / 16:03

3 respostas

21

Parece que você pode prefixar seu script com env -i , o que limpará o ambiente antes de executar o script:

env -i sh test.sh

De man env :

-i, --ignore-environment
              start with an empty environment

Não tenho certeza porque você gostaria de fazer isso ...

    
por 01.09.2010 / 16:13
1

Uma possibilidade (embora pareça bastante feia):

exec -c $SCRIPT inicia o $ SCRIPT com um ambiente vazio. (veja man bash procure por exec \[-cl\] ).

    
por 01.09.2010 / 16:14
-1

Tanto quanto eu sei, a resposta é "Não". Você pode substituir variáveis ambientais no próprio script. O valor da variável de ambiente deve voltar ao seu valor original depois que o script é executado. Você provavelmente precisará executar o script como um processo filho: $ this.script.sh & para evitar ter que sair do seu shell em uma única vez, execute o script para redefinir suas variáveis de ambiente para seu valor original.

Editar:

De um poster anterior, parece que estou errado sobre isso não ser possível.

    
por 01.09.2010 / 16:15