.profile 什么时候执行?

trz*_*czy 6 startup bash debian variable

我正在安装一个应用程序,但无法理解为什么安装指南告诉要向export其中一个启动文件添加命令。我没有看到它何时执行。那是一行:

export WORKON_HOME=$HOME/.virtualenvs
Run Code Online (Sandbox Code Playgroud)

我在终端中执行了一些代码,发现该export命令不起作用。为什么?

root@localhost:/home/gameboy# echo export ADAM=Boss>>/home/pythontest/.profile
root@localhost:/home/gameboy# tail /home/pythontest/.profile
    if [ -f "$HOME/.bashrc" ]; then
    . "$HOME/.bashrc"
    fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi
export ADAM=Boss
root@localhost:/home/gameboy# su pythontest
pythontest@localhost:/home/gameboy$ echo $ADAM

pythontest@localhost:/home/gameboy$ 
Run Code Online (Sandbox Code Playgroud)

dr_*_*dr_ 13

~/.profile可以在启动登录 Bash shell 时运行。

首先,系统执行系统范围的/etc/profile,然后执行这些文件中的第一个存在且可读的文件:

~/.bash_profile
~/.bash_login
~/.profile
Run Code Online (Sandbox Code Playgroud)

您的问题是您正在通过 更改用户su pythontest。您必须通过添加以下标志来确保生成的 shell 是登录 shell -l:

su -l pythontest
Run Code Online (Sandbox Code Playgroud)