![如何让我的提示显示当前目录和上一个目录](https://linux22.com/image/880075/%E5%A6%82%E4%BD%95%E8%AE%A9%E6%88%91%E7%9A%84%E6%8F%90%E7%A4%BA%E6%98%BE%E7%A4%BA%E5%BD%93%E5%89%8D%E7%9B%AE%E5%BD%95%E5%92%8C%E4%B8%8A%E4%B8%80%E4%B8%AA%E7%9B%AE%E5%BD%95.png)
我编辑了.bashrc
文件
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;36m\]\W:\[\033[01;34m\]\W \[\033[00m\]\$ '
else
PS1='[${debian_chroot:+($debian_chroot)}\u:\W \$ ] '
fi
所以我的提示看起来像这样user:Pictures:Pictures $
但我想在我的用户名后显示我以前的目录。
我知道用命令basename $(dirname 'pwd')
我可以提取以前的目录。
有什么方法可以使我的提示看起来像这样?
user:prevDir:Pictures $
非常感谢(如果我的英语或术语不是很好,我很抱歉,因为我是 Ubuntu 新手)
答案1
将第一个替换\W
为${OLDPWD/\/home\/$USER/\~}
:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;36m\]${OLDPWD/\/home\/$USER/\~}:\[\033[01;34m\]\W \[\033[00m\]\$ '
~$ cd tmp
~/tmp$ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;36m\]${OLDPWD/\/home\/user/\~}:\[\033[01;34m\]\W \[\033[00m\]\$ '
user:~:tmp $
${OLDPWD/\/home\/$USER/\~}
/home/$USER
是一个参数扩展,它用 替换开头$OLDPWD
的潜在扩展~
,以便打印~
用户主目录的完整路径(模仿默认提示的行为)。
如果不想这样,\W
只需替换为$OLDPWD
:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;36m\]$OLDPWD:\[\033[01;34m\]\W \[\033[00m\]\$ '
~$ cd tmp
~/tmp$ PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;36m\]$OLDPWD:\[\033[01;34m\]\W \[\033[00m\]\$ '
user:/home/user:tmp $