我正在使用Ubuntu,当我使用一些深层目录层次结构时,我厌倦了bash中的这个长提示.所以,我想通过以下方式调整我的PS1来缩短工作目录部分:
目前我有:
pajton@dragon:~/workspace/projects/project1/folder1/test$
Run Code Online (Sandbox Code Playgroud)
并希望:
pajton@dragon:~/workspace/.../folder1/test$
Run Code Online (Sandbox Code Playgroud)
如果len($ 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
Run Code Online (Sandbox Code Playgroud)
结果如下:
pajton@dragon:...sth/folder1/sample$
Run Code Online (Sandbox Code Playgroud)
提前致谢!
当我在Git存储库中时,我想有一个自定义CSH提示。如果我不在git repo中,我希望提示符看起来像这样
host_name>$
Run Code Online (Sandbox Code Playgroud)
但是当我进入Git仓库时,必须变成这样
host_name [GIT REPO ROOT DIR]>$
Run Code Online (Sandbox Code Playgroud)
我只想显示Git存储库的根目录(GIT REPO ROOT DIR),以便知道当前所在的存储库。而不是每次都使用“ pwd”。
你们对实现这一目标有任何建议吗?谢谢您的帮助
-阿尼什