Ant*_*nto 8 command-line bash prompt bashrc
我不记得在哪里,但我已经看到 bash 提示的当前路径以一种有趣的方式缩短了:路径中包含的每个目录(最后一个除外)仅被其第一个字母替换。例如:path/to/some/directory将缩短为p/t/s/directory.
我怎样才能重现这种行为?
玩了一段时间后,我得到了您需要的答案:
将此添加到您的主目录中的 .bashrc 文件中,退出终端并租用它,您将得到提示。
PS1='$(eval "sps")$ '
sps() {
echo "$PWD" | sed -r 's|/([^/]{,2})[^/]*|/\1|g'
}
Run Code Online (Sandbox Code Playgroud)
sps()每次PS1显示提示变量时,它都使用声明的函数来评估路径
IE
/ho/de/De/Ap/Ti$ pwd
/home/deth/Desktop/Apps/Tivo
/ho/de/De/Ap/Ti$
Run Code Online (Sandbox Code Playgroud)
或者...如果你坚持一个字母
PS1='$(eval "sps")$ '
sps() {
echo "$PWD" | sed -r 's|/(.)[^/]*|/\1|g'
}
Run Code Online (Sandbox Code Playgroud)
其中显示:
/h/d/D/A/T$ pwd
/home/deth/Desktop/Apps/Tivo
/h/d/D/A/T$
Run Code Online (Sandbox Code Playgroud)