Bash 搜索提示重叠值

Bash 搜索提示重叠值

运行 docker alpine 容器,我的 PS1 是:

PS1="\u@\h:\w\$ "

所以当登录到容器时,你会得到

root@worker:/$

所以如果我输入类似的内容

root@worker:/$ cd /tmp/dir/path

然后进行反向搜索tmp/di

一路上每个字符的提示如下所示:

(reverse-i-search)`t': cd /tmp/dir/path
(reverse-i-search)`tm: cd /tmp/dir/path
(reverse-i-search)`tmp cd /tmp/dir/path
(reverse-i-search)`tmp/cd /tmp/dir/path
(reverse-i-search)`tmp/dd /tmp/dir/path
(reverse-i-search)`tmp/di /tmp/dir/path

现在我已经输入了tmp/di,如果我按下end按键,提示符将如下所示:

root@worker:/$tmp/dir/path

值得注意的是,如果我点击enter它,它会执行正确的命令,如果我向后滚动历史记录,它会显示正确的命令,所以这显然只是与演示有关。

我想知道这是我的 PS1 的问题还是我做错了什么。

谢谢你!

编辑:

这是整个 .bashrc

PS1="\u@\h:\w\$ "
alias app='cd /var/www/pricing'

# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'

    alias grep='grep --color=auto'
    alias fgrep='fgrep --color=auto'
    alias egrep='egrep --color=auto'
fi

# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

# append to the history file, don't overwrite it
shopt -s histappend
shopt -s checkwinsize

case "$TERM" in
    xterm-color) color_prompt=yes;;
esac

相关内容