bash 기록을 통해 액세스하면 화면이 긴 명령의 시작을 차단합니다.


9

OS X Lion에서 기본 버전의 bash 및 screen을 사용하고 있습니다.

스크린 세션에있을 때 bash 기록을 다시 스크롤하면 랩 할 수있는 긴 명령이 나옵니다.

먼저 몇 가지 명령을 입력 할 수 있습니다.

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/

위와 같이 올바르게 래핑되지만 bash의 기록을 통해 액세스하려면 콘솔을 표시합니다.

83279836214c0.144847759343/

따라서 명령의 프롬프트와 첫 번째 줄 전체가 누락되어 편집하기가 어렵습니다. 첫 번째 줄로 다시 스크롤하면 표시되지만 마지막 출력 줄을 덮어 씁니다. 명령을 실행하면 첫 번째 줄의 나머지 부분이 표시되고 모든 것이 예상대로 보입니다.

selassid@tem02:~$ ls ljmix/fiftyfifty_softsphere/T0.350/r2.43/0.565421311859c0.1
83279836214c0.144847759343/
total 1792
...
selassid@tem02:~$ 

더 흥미로운 점은 히스토리를 사용하여 긴 명령에 액세스하지만 아직 실행하지 않은 경우 C-a다른 창으로 전환 한 다음 다시 전환하거나 현재 터미널 창에서 클릭하여 화면 명령 을 사용하는 경우 다시 이력 명령이 다시 올바르게 표시됩니다.

내가 PS1='\u@\h:\w$ '너무 거기에 아무것도 이상한가는이있다.

기록을 사용할 때 전체 명령을 올바르게 표시하는 방법이 있습니까? 화면 랩 설정으로 게임을 시도했지만 상황이 악화됩니다.

stty -a 보여줍니다 :

speed 9600 baud; 46 rows; 80 columns;
lflags: icanon isig iexten echo echoe -echok echoke -echonl echoctl
    -echoprt -altwerase -noflsh -tostop -flusho pendin -nokerninfo
    -extproc
iflags: -istrip icrnl -inlcr -igncr ixon -ixoff ixany imaxbel iutf8
    -ignbrk brkint -inpck -ignpar -parmrk
oflags: opost onlcr -oxtabs -onocr -onlret
cflags: cread cs8 -parenb -parodd hupcl -clocal -cstopb -crtscts -dsrflow
    -dtrflow -mdmbuf
cchars: discard = ^O; dsusp = ^Y; eof = ^D; eol = <undef>;
    eol2 = <undef>; erase = ^?; intr = ^C; kill = ^U; lnext = ^V;
    min = 1; quit = ^\; reprint = ^R; start = ^Q; status = ^T;
    stop = ^S; susp = ^Z; time = 0; werase = ^W;

화면 내부에서 $ TERM을 반향하여 출력 할 수 있습니까? 또한 tput am을 실행하면; 에코 $ ?, 당신은 무엇을 얻습니까?
Patrick

TERM이다 xterm-256colortput am; echo $?단지 나에게 0 제공
selassid

또한 이것은 창 하단의 기록을 스크롤 할 때만 발생하므로 기록에서 명령의 두 번째 줄을 표시하려면 모든 텍스트를 위로 이동해야합니다.
selassid

출력은 stty -a무엇입니까?
Andy Smith

게시물 하단에 추가했습니다. 화면이 실행되지 않을 때 출력되는 것과 일치합니다.
selassid

답변:


1

위의 의견에 대한 답변을 바탕으로 시작 스크립트 중 하나에서 TERM을 무시하고있는 것으로 보입니다. 화면 내부에서 TERM은 'xterm-256color'가 아닌 'screen'으로 설정해야합니다.

쉘 시작 스크립트를 살펴볼 것입니다. ~ / .bashrc, / etc / bash / bashrc, 그리고 모든 것을 어떻게 설정했는지에 따라 ~ / .bash_profile 및 / etc / profile과 같은 다른 것들도 가능합니다. TERM = "..."설정이 표시되면 해당 설정을 제거해야합니다.


그것은 사실이지만, 그것들을 제거한 후에도 TERM이 화면 내부에서 "화면"인지 확인해도 여전히 문제가 해결되지 않습니다.
selassid

~ / .inputrc 또는 / etc / inputrc가 있습니까? 그렇다면 수평 스크롤 모드가 설정되어 있지 않거나 꺼져 있는지 확인하십시오.
Patrick

~ / .inputrc가 있지만 가로 스크롤 모드가 설정되어 있지 않고 off로 설정해도 동작이 변경되지 않습니다. 입력 메타 및 출력 메타 켜기 및 변환 메타 끄기가 있지만 해당 설정을 제거해도 동작이 변경되지 않습니다.
selassid
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.