Recarregue ~ / .bash_profile de dentro de um script de shell

1

Eu escrevi um script de shell que precisa recarregar ~/.bash_profile , mas não está funcionando. Aqui está o código.

echo 'export PATH=$PATH":$HOME/.bin"' >> ~/.profile
mkdir ~/.bin
cp passwrdgen ~/.bin
chmod +x ~/.bin/passwrdgen
. ~/.profile
echo Done!
    
por Daniyal Ansari 09.03.2017 / 20:34

1 resposta

1

Como Thrig aponta, você está esperando que o PATH seja alterado fora da subshell na qual o script é executado?

Isso não vai funcionar. Quando você exporta variáveis, faz isso somente para o shell atual .

Seu script parece bom, tente adicionar uma linha que imprima o PATH na parte inferior dele para garantir que:

echo 'export PATH=$PATH":$HOME/.bin"' >> ~/.profile
mkdir ~/.bin
cp passwrdgen ~/.bin
chmod +x ~/.bin/passwrdgen
. ~/.profile
echo "$PATH"
echo Done!
    
por 09.03.2017 / 21:49