我正在将gnome-terminalbash 与 bash 一起使用,当我有一个应该越过该行的命令时,它只会保留在同一行上。所以而不是:
echo "abcdefghijklmnopqrstuvwxyz"
Run Code Online (Sandbox Code Playgroud)
我会得到
opqrstuvwxyz""abcdefghijklmn
Run Code Online (Sandbox Code Playgroud)
或者类似的东西。但是,如果我按 Enter 键,该命令仍然有效。我相信这与我的 PS1 变量有关,但我不知道它出了什么问题。这里是:
export PS1='\e[1;35m[\u:\w]\$\e[0;35m '
Run Code Online (Sandbox Code Playgroud)
这似乎有些相关:
Bash 手册页建议将输出包装起来
tput。\[ \]这有助于 Bash 忽略不可打印的字符,以便正确计算提示符的大小。
来源。
您的情况下的“tput输出”如下所示:\e[1;35m,\e[0;35m(有两个单独的片段需要包装)。它们也可以写成\033[1;35m和。\033[0;35m一般来说,您需要包装任何不可打印的序列。
我修改了你的PS1:
export PS1='\[\e[1;35m\][\u:\w]\$\[\e[0;35m\] '
Run Code Online (Sandbox Code Playgroud)
它似乎对我有用,没有问题。
| 归档时间: |
|
| 查看次数: |
5114 次 |
| 最近记录: |