从 shell 脚本内部重新加载 ~/.bash_profile

从 shell 脚本内部重新加载 ~/.bash_profile

我写了一个需要重新加载的shell脚本~/.bash_profile,但它不起作用。这是代码。

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

答案1

正如 thrig 所指出的,您是否期望 PATH 在执行脚本的子 shell 之外进行更改?

那是行不通的。当您导出变量时,您会这样做仅适用于当前 shell

您的脚本看起来不错,尝试添加一行在其底部打印 PATH 以确保:

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

相关内容