如何使 Bash/Zsh 提示符仅显示当前目录及其父目录?

如何使 Bash/Zsh 提示符仅显示当前目录及其父目录?

如何创建仅显示当前目录及其父目录的 bash 和 zsh 提示符?

例如,如果我在 dir ~/pictures/photos/2021,它应该显示:

[photos/2021]$ echo hi

就这样。想要它为了bash和为了zsh

答案1

zsh

PS1='[%2d] $ '

info zsh 'prompt expansion'了解详情。

bash(或zsh -o promptsubst,虽然你不想在那里这样做,好像$PWD包含%字符,但这会导致进一步的提示扩展):

PS1='[${PWD#"${PWD%/*/*}/"}] $ '

答案2

另一个可能更具可读性的选项:

PS1='[$(basename $(dirname "$PWD"))/$(basename "$PWD")]'

这也展示了如何更普遍地执行类似的目录操作。

相关内容