검색 기록 시 Bash 문자 유지

검색 기록 시 Bash 문자 유지

을 누르 k거나 누르면 up이전에 입력한 명령이 표시되지만 어느 순간 10자보다 긴 명령의 처음 10자가 유지됩니다. 10자를 초과하는 명령이 항상 처음으로 나타나는 것은 아니지만, 다시 ctrl+c누르면 up동일한 문자가 그대로 유지됩니다.

$ echo test
test

$ echo thisisalongstring
thisisalongstring

# pressing `up` twice
$ echo thisiecho test # should be `echo test`
test
# even though `echo thisi` is shown, it is not executed 

이 문제를 해결할 방법이 있나요?

~/.bashrc추가 테스트를 제외하고는 아무것도 변경하지 않았습니다 PS1='test '.

# this is the default ubuntu prompt
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
  • 이는 gnome-terminal과 konsole 모두에서 발생합니다.
  • 인쇄할 수 없는 문자 를 포함하지 않는 추가를 시도했지만 이 문제가 계속 발생 PS1='test '합니다 .PS1=''~/.bashrc
  • 실행되거나 PS1=$PS1작동 PS1=$(echo $PS1)하지 않습니다.
  • 위 코드를 터미널에 수동으로 붙여넣으면 문제가 해결되었지만 이유는 모르겠습니다.
    • $PS1터미널을 시작한 후 에코하면 $PS1수동으로 붙여넣은 후 에코하는 것과 동일한 결과가 생성됩니다.
    • 실행하면 . ~/.bashrc프롬프트가 도청 상태로 되돌아갑니다.

이 질문은 이미 해결된 질문과 비슷해 보입니다.기록 검색 시 bash 프롬프트에 문제가 발생하는 이유는 무엇입니까?하지만 인쇄할 수 없는 문자가 없을 때도 이런 일이 발생할 수 있습니다 PS1.

답변1

이는 변경 없이 작동합니다 PS1.

custom_prompt(){
    # default ubuntu prompt
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
}

PROMPT_COMMAND=custom_prompt

관련 정보