如何创建仅显示当前目录及其父目录的 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")]'
这也展示了如何更普遍地执行类似的目录操作。