我在 WSL 上使用 Debian。不过我主要在 Windows 路径下工作。目前我的PS1
看起来.bashrc
像这样:
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
这使得在 Windows 驱动器上的路径非常长,因为它总是显示不必要的前缀/mnt/c/Users/name
。我想知道是否有可能显示相对于 的路径/mnt/c/Users/name
。
提前致谢!
该变量可以包含任何 shell 扩展,如您自己的示例所示;如果扩展被引用/转义以防止在分配期间对其进行评估,则每次显示提示时都会再次对它们进行评估。
因此
\w
,您可以$PWD
与各种字符串扩展一起使用来替换其前缀:这会将前缀替换
/mnt/c/Users/name/
为Win/
. (这并不理想,因为它仅在存在尾随斜杠时才有效,即当您位于子目录中时,但不知怎的,省略尾随斜杠感觉不对,因为这可能会导致奇怪的冲突......)您甚至可以使用函数输出:
请注意单引号
'...'
,它会阻止立即 $ 扩展。(您甚至可以让该函数显示整个提示;如果您决定这样做,请确保输出
\001
and\002
周围的颜色代码而不是\[ \]
。)