수정하지 않고 터미널에서 전체 텍스트를 아래로 스크롤하는 쉘 스크립트

수정하지 않고 터미널에서 전체 텍스트를 아래로 스크롤하는 쉘 스크립트

/bin/sh 스크립트를 사용하여 터미널에서 몇 줄의 텍스트를 아래로 스크롤하려고 합니다. 이 경우 smcup, rmcup을 사용한 솔루션은 허용되지 않습니다.

시도한 다른 여러 옵션이 실패했습니다(다음을 포함).제이드 BP):

  • tput cup 0 0; tput ri
  • tput cup 0 0; tput rin 3

man terminfo가 다음을 지정하기 때문에 이것은 약간 이상합니다.

텍스트를 아래로 스크롤하기 위해 프로그램은 화면의 왼쪽 상단으로 이동하여 ri(역방향 인덱스) 문자열을 보냅니다. 문자열 ind 및 ri는 화면의 해당 모서리에 없으면 정의되지 않습니다.

테스트를 실행하기 전에 터미널의 출력을 스크롤할 수 있어야 합니다(테스트 전에 set, env를 사용해 보십시오).

xterm의 솔루션으로 충분합니다.

테스트 속도를 높이고 명확하게 하려면 이 스크립트를 사용하여 시작하세요.

#!/bin/sh

# create scrollable text
set

# includes correction from JdeBP
# try to scroll text down one line
tput cup 0 0; tput ri

# includes correction from JdeBP
# try to scroll text down 3 lines
tput cup 0 0; tput rin 3

답변1

tput cup 0 0, ri

이 일이 실패한 것도 당연합니다. 이것은 아니다tput프로그램 명령줄 구문.

컵 0 0 넣기
투트리

매우 간단합니다.

XTerm 이상의 복잡한 작업을 수행하는 고급 사용자를 위한 참고 사항:

  • 실제 터미널과 고품질 에뮬레이터에서는 기본이 아닌 위쪽 및 아래쪽 여백과 꺼진 원시 모드가 동작과 스크롤하기 위해 커서를 배치해야 하는 위치에 영향을 줍니다. terminfo 모델이 암시하는 것만큼 간단하지는 않습니다. 예를 들어 실제 DEC 터미널에 대한 자세한 내용은 DEC VT4xx/5xx doco를 참조하세요.
  • DEC 세계에서 SD 및 SU는 버퍼 스크롤이 아닌 창 변환입니다. VT525에는 다중 창 기능이 있으며 이러한 제어 시퀀스는 기본 버퍼 주위로 창을 이동합니다.
  • 일부 열악한 완전 8비트가 아닌 클린 터미널 에뮬레이터는 U+0084 및 U+008D를 IND 및 RI로 올바르게 인식하지 못하고 7비트 별칭을 강제로 사용합니다.

관련 정보