Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在bash中滚动命令历史记录时的额外字符_Bash - Fatal编程技术网

在bash中滚动命令历史记录时的额外字符

在bash中滚动命令历史记录时的额外字符,bash,Bash,当我在bash中使用向上箭头键滚动我的命令历史记录时,我经常(但不总是)以命令的前三个字符基本上卡住而结束 例如,我键入以下命令(按此顺序): 现在我点击一次,得到: >ls -la 我第二次击中它,然后 >ls pwd >ls whoami 我第三次击中它,然后 >ls pwd >ls whoami 如果我再打几次,我就会 >ls ls -la 如果我一路走下去,我就会 >ls 如果我点击这里的回车键,它的行为就好像那里什么都没有(而不是

当我在bash中使用向上箭头键滚动我的命令历史记录时,我经常(但不总是)以命令的前三个字符基本上卡住而结束

例如,我键入以下命令(按此顺序):

现在我点击一次,得到:

>ls -la
我第二次击中它,然后

>ls pwd
>ls whoami
我第三次击中它,然后

>ls pwd
>ls whoami
如果我再打几次,我就会

>ls ls -la
如果我一路走下去,我就会

>ls
如果我点击这里的回车键,它的行为就好像那里什么都没有(而不是额外的ls)


这可能是什么原因造成的/我应该在哪里寻找?我基本上还是个linux新手。

解决了这个问题。问题在于PS1提示符中的\n位置

坏版本:

export PS1="\n\e[0;33m[\!]\e[m\e[0;32m[\A \w]\n\e[m>
export PS1="\n\e[0;33m[\!]\e[m\e[0;32m[\A \w]\e[m\n>
好的版本:

export PS1="\n\e[0;33m[\!]\e[m\e[0;32m[\A \w]\n\e[m>
export PS1="\n\e[0;33m[\!]\e[m\e[0;32m[\A \w]\e[m\n>

我的猜测是,您没有“获取”这些命令–它只是将它们打印偏移三个字符,并且
ls
永远不会被覆盖。您的提示符中是否有一些有趣的非打印字符使bash感到困惑
echo$PS1
为我们提供。检查您的
~/.inputrc
是否存在任何损坏。是的,我开始玩我的$PS1,这似乎就是问题所在。。。问题是颜色内有一个\nmarkers@CarlNorum好主意,你能不能把它作为一个答案贴出来,让它成为其他处于痛苦中的人的一个很好的参考点。:)