我将 .bash_profile 设置为
exec env -i HOME=$HOME TERM=vt100 PS1='\h' /bin/bash
但当我登录时,它还显示:
lfs@sam:~$ env
TERM=vt100
PWD=/home/lfs
PS1=${debian_chroot:+($debian_chroot)}\u@\h:\w\$
SHLVL=1
HOME=/home/lfs
_=/usr/bin/env
lfs@sam:~$
发生了什么?
登录时如何设置PS1?
谢谢~
答案1
该值PS1
由 bash 系统范围的配置文件设置/etc/bash.bashrc
。您可以通过从您的~/.bashrc
.
PS1
是一个 shell 变量。它的含义取决于外壳。它通常不应该被导出,因为它不应该在进程的环境中,尽管如果您只使用一个 shell,您可以逃脱它。
请注意,bash 在配置文件方面相当古怪:如果您启动 bash 的登录实例,它只读取/etc/profile
和~/.bash_profile
,~/.profile
如果没有~/.bash_profile
.如果您启动非登录交互式实例,它将读取/etc/bash.bashrc
(如果配置为这样做)和~/.bashrc
。为了在 bash 的登录实例中获取交互设置,您应该将此代码放入您的~/.bash_profile
:
if [ -r ~/.profile ]; then
. ~/.profile
fi
case $- in *i*) if [ -r ~/.bashrc ]; then . ~/.bashrc; fi;; esac
shell 变量包含指示 shell 是交互式的$-
字母。i