我正在使用Ubuntu,不想在处理深目录层级时看到命令提示符过长。因此,我想要调整我的PS1,以便将工作目录的长度缩短为以下样式:
目前我的提示符是:
pajton@dragon:~/workspace/projects/project1/folder1/test$
我希望拥有:
pajton@dragon:~/workspace/.../folder1/test$
如果 $PWD 的长度超过给定的阈值,则会进行截断。我希望始终保留第一个路径组件和至少一个最后路径组件。然后,随着空间的允许,从右侧添加更多组件。
这是我目前的代码。它能工作,但存在以下问题:1)不保留第一个路径组件;2)不在边界处截取路径:
pwd_length=14
pwd_symbol="..."
newPWD="${PWD/#$HOME/~}"
if [ $(echo -n $newPWD | wc -c | tr -d " ") -gt $pwd_length ]
then
newPWD="...$(echo -n $PWD | sed -e "s/.*\(.\{$pwd_length\}\)/\1/")"
else
newPWD="$(echo -n $PWD)"
fi
结果如下:
pajton@dragon:...sth/folder1/sample$
提前致谢!
\n
) 在PS1
中实现。 - ak2…
而不是三个空格...
来节省几个字符。 - Sparhawk