Script de shell em execução no terminal, mas não no arquivo de script de shell [duplicado]

0

Eu tenho um problema com a execução do script do arquivo. Quando eu digito na linha de comando

PATH=$PATH:/home/

, em seguida, PATH é alterado de forma adequada. Mas quando eu executo este arquivo:

#!/bin/sh
#provided by me

PATH=$PATH:/home/
echo "done"
exit 0

done é impresso, mas PATH não é alterado. Por que isso está acontecendo ?

    
por Patryk 21.02.2012 / 01:01

1 resposta

6

Alterações na variável ambiental se aplicam ao processo atual e a qualquer filho subseqüente, mas não aos processos pai. Portanto, se você executar um script, ele não poderá afetar as variáveis ambientais do shell que o executou. Você precisa source do script usando o . shell embutido. Ou seja,

. /path/to/script

Isso faz com que o shell atual execute os comandos no arquivo em vez de executar um subprocesso.

    
por 21.02.2012 / 01:12