我在 .basrhc 文件中定义了以下 bash 提示变量:
PS1='\u@\h:\[\e[01;34m\] \[$(pwd|sed -e "s!.*/\\([^/]*/[^/]*/[^/]*\\)!\\1!g")\] \[\e[00m\] \[\e[01;31m\]\t\[\e[00m\]\$ '
从目录 /one/two/three/four/ 中,这看起来像是以下内容的彩色版本:
me@my-computer two/three/four 12:01:37$
(我不想把我得到的图像,但我是一个没有代表点的新人..)
我遇到了无法正确转义的问题(我认为这是源代码),因为当向上滚动浏览我的历史记录时,这些行会截断 bash 提示符,并且终端不会在正确的位置显示光标命令行。不过,您可能需要向上滚动几行才能看到这种效果。
我认为问题出在sed
命令上,但如果正确,我不确定如何解决。
有什么想法吗?