![如何动态缩短 bash 提示中的当前工作目录](https://linux22.com/image/1183070/%E5%A6%82%E4%BD%95%E5%8A%A8%E6%80%81%E7%BC%A9%E7%9F%AD%20bash%20%E6%8F%90%E7%A4%BA%E4%B8%AD%E7%9A%84%E5%BD%93%E5%89%8D%E5%B7%A5%E4%BD%9C%E7%9B%AE%E5%BD%95.png)
因此,我正在寻找一种方法来缩短提示中的路径(如果达到定义的长度),例如:
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)\]"
您可以使用下面链接的网站生成自己的提示样式和颜色