less
vim
nano
등을 사용하여 비슷한 동작을 원합니다 .
bash를 사용하여 이를 달성할 수 있습니까?
답변1
less
터미널 에뮬레이터가 이를 지원하는 경우 vim
, , , 등에서 사용되는 것과 동일한 메커니즘, 즉 ti
및 te
termcap 기능( smcup
및 rmcup
최신 terminfo )을 사용하여 이를 수행할 수 있습니다. 그들은 각각 메인 화면에서 보조 화면으로 전환했다가 다시 돌아옵니다.
시스템에 이 명령이 있으면 다음을 tput
사용할 수 있습니다.
tput smcup # switch to secondary screen
...
tput rmcup # switch back to primary screen
그렇지 않으면 xterm
대부분의 다른 터미널 에뮬레이터의 경우 다음과 같습니다.
printf '\e[7\e[?47h'
다음과 같이 보조 화면으로 전환되어야 합니다.
printf '\e[2J\e[?47l\e8'
홈 화면으로 다시 전환되어야 합니다(그리고 커서를 원래 위치로 되돌려 놓아야 합니다).
echotc
tcsh에는 다음을 수행할 수 있는 명령이 내장되어 있습니다 .
tcsh -c 'echotc ti'
...
tcsh -c 'echotc te'
echotc
(또는 tcsh를 사용하는 경우 직접).
답변2
이를 "대체 화면"이라고 합니다.티오피 구글 클릭이 기능을 얼마나 좋아하는지 보여주세요.) 일부 터미널은 두 개의 화면 버퍼를 지원합니다. 하나는 전체 화면 응용 프로그램에서 사용하고 다른 하나는 라인 기반 응용 프로그램에서 사용합니다. Bash는 그들에 대해 아무것도 모릅니다. 명령이 단순히 출력을 터미널로 보내는 경우 터미널 제어 시퀀스를 사용하여 보조 화면으로 전환하거나 다시 돌아갈 수 있습니다(이 명령은 다음 문서에 설명되어 있습니다).xtermctlseqs).
printf '\e[?47h'; mycommand; printf '\e[?47l'
대체 화면에는 스크롤백 기능이 없으므로 마지막 출력 화면만 표시됩니다. 이것이 문제라면 간단한 조치를 취하세요.
mycommand | less
화면 버퍼는 두 개뿐입니다. 더 많은 것을 원하면 적절한 스크린 멀티플렉서를 사용하십시오.화면또는멀티플렉서.
답변3
Bash는 화면에 대해 아무것도 모릅니다(사실 화면을 보지 않고도 실행할 수 있습니다). 그러나 표준 출력 및 표준 오류를 모든 파일이나 파이프로 리디렉션할 수 있습니다.
답변4
screen
현재 답변 중 어느 것도 내 컴퓨터에서 작동하지 않는 것 같지만 나에게 맞는 것 같은 라는 명령을 찾았습니다 .