Bash에서는 앞에 Enter를 입력하면 Tab으로 표시됩니다.

Bash에서는 앞에 Enter를 입력하면 Tab으로 표시됩니다.

아래와 같이 입력하면 ech실행이 되지 않습니다. 대신, 입력된 미리 Enter키는 가 됩니다 Tab.

$ sleep 5[Enter]
ech[Enter]
$ ech
echkpnt          echkpnt.default  echkpnt.fluent   echkpnt.ls_dyna  echo
$ ech<cursor-is-here>

동료에게 확인해 보니 이 문제가 없으므로 해결될 수 있다고 생각합니다. 나는 많은 stty 설정을 시도했습니다. 불운. 이것이 "요리된" 편집 모드와 관련이 있다는 것을 알고 있지만 해결책을 찾을 수 없습니다.

$ stty -a
speed 38400 baud; rows 44; columns 127; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S;
susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

편집: KiTTY를 사용하여 원시 문자 로그를 캡처했습니다. 내 생각엔 지금 가고 있는 것 같아. 이것은 내 PS1 프롬프트 색상과의 상호 작용인 것 같습니다. 이것은 내 동료들이 그것을 보지 못한 이유를 설명합니다. 답을 알아내면 게시하겠습니다.


키티의 일기


편집 2: 이것은 내 PS1입니다.

        reset="\[$(tput setaf 0)\]"
        red="\[$(tput setaf 9)\]"
        green="\[$(tput setaf 10)\]"
        yellow="\[$(tput setaf 11)\]"
        white="\[$(tput setaf 15)\]"
        PS1="${green}\$ ${white}"

답변1

PROMPT_COMMAND나는 마침내 bash 변수가 내가 얻고 있는 일부(아직 찾을 수 없는) 시스템/프로젝트 파일에 의해 설정된다는 것을 발견했습니다 . 내 작업 환경에서는 소스 파일 트리를 따라가기가 매우 어렵습니다. 따라서 직접 설정했는데도 PS1의 명령은 PROMPT_COMMAND계속 실행됩니다. 해결책은 이 변수를 내 사용자의 bashrc 파일의 일부로 설정 해제하는 것이었습니다.

$ echo $PROMPT_COMMAND
printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/\~}"

PROMPT_COMMAND의 정의.

관련 정보