如何动态缩短 bash 提示中的当前工作目录

如何动态缩短 bash 提示中的当前工作目录

因此,我正在寻找一种方法来缩短提示中的路径(如果达到定义的长度),例如:

user1@localhost:~/Pictures/awesome_trip/

没问题,但如果我们进入更多子目录,例如:

user1@localhost:~/Pictures/awesome_trip/first_day/mikes_camera/funny_pics

我希望提示更改为

user1@localhost:/.../funny_pics

我知道如何更改 .bashrc 中的提示

我想知道是否有一种方法可以动态地使它如此,以便我可以获取工作目录的当前长度并检查长度,并更改提示。类似于:

CUR_PROMPT=$(pwd); # get the working dir

CUR_PROMPT_LENGTH={#CUR_PROMPT}; # get the length

if[ $CUR_PROMPT_LENGTH -gt 20 ]; then 
  # if prompt is long, render shorter version
  PS1='\u@\h:...\w:\$';
else
  # else render long version
  PS1='\u@\h:\W:\$'

希望有办法做到这一点,感谢您的回答。

答案1

您可以使用类似下面的代码。只需将其添加到主文件夹中的 .bashrc 文件中即可。它基本上会使您的提示类似于“user@computername [dir] $”,因此它可能看起来像 telegonicaxx@laptop [shared] $

export PS1="\u@\h [\W] \\$\[$(tput sgr0)\]"

您可以使用下面链接的网站生成自己的提示样式和颜色

http://bashrcgenerator.com/

相关内容